如何将 UITableView 或 UITableViewController 集成到 UIPageViewController 中?

Posted

技术标签:

【中文标题】如何将 UITableView 或 UITableViewController 集成到 UIPageViewController 中?【英文标题】:How can I integrate an UITableView or UITableViewController into a UIPageViewController? 【发布时间】:2017-03-21 14:20:04 【问题描述】:

我想要一个 UIPageViewController 有几个页面,其中所有页面都是 UITableView 甚至 UITableViewController 的实例,但我对如何做到这一点有点迷茫。我已经尝试从 Interface Builder 添加它们,但这似乎是不可能的。

【问题讨论】:

你能显示一些代码吗?你现在想达到什么目标? 【参考方案1】:

我假设你有你的 PageVC 并且你已经连接了 VC。建议使用标准 VC 而不是 TableVC:

这就是我在视图控制器中设置 TableView 的方式

在情节提要中:

将一个 TableView 拖入 View 区域。在情节提要的 VC 标头中选择 VC 图标(最左侧),并在 Attributes inspector ViewController layout 中取消选中 Adjust scroll view inserts(这消除了 tableview 顶部的一些额外空间。

单击 tableview 将其选中,然后从 tableview 中按住 cntl 并再次拖动到 VC 图标,它将提供与 TableViewDelegate 和 TableViewDatasource 的连接。选择一个并重复另一个。

然后将一个 TableViewCell 拖到 TableView 中。选择它,然后在 Attributes Inspector 中将标识符设置为 Cell(或任何但与 CellForRowAtIndexPath 相同的标识符 - 见下文)。

接下来,在 XCode 的顶部栏中单击助手编辑器按钮以获取 2 个窗口。左边有故事板,另一个有视图控制器。 为简单起见,为每个 VC 使用单独的 Swift 文件。 因此,通过从 Storyboard 中的 TableView 拖动到 VC 代码来创建一个插座,将其称为 tableView(至少现在是这样)。我们已经完成了 Storyboard,因此可以返回标准编辑器并专注于 VC 的代码。

接下来,在VC的源类语句中添加2个tableview协议UITableViewDelegate和UITableViewDataSource。

执行 Xcode Cmd-S(保存); Shift-Cmd-K(清洁);此时 Cmd-B(构建)以推动自动完成过程。

最后,创建 3 个主要的 TableView 方法 - 它们应该自动完成:

NumberOfSectionsInTableView.....

return 1  // for now

NumberOfRowsInSection.....

return array.count   // Assuming your data is in an array called array

CellForRowAtIndexPath..... 那么

let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

cell.textLabel?.text = array[indexPath.row]   //- assuming string array
return cell

这应该设置您的功能表视图 - 对其他 VC 重复此操作。

相应地定制......

【讨论】:

以上是关于如何将 UITableView 或 UITableViewController 集成到 UIPageViewController 中?的主要内容,如果未能解决你的问题,请参考以下文章

UITable 视图中的单元格队列大小

如何将文本包装在 Iphone 的 UITable 单元格中?

如何以编程方式在 UITableView 中添加视图?

将 UITable 行号从大到小反转(...5,4,3,2,1)

在运行应用程序时将数据写入 plist 并将它们读取到 UITable

将 NSArray 传递给 UITable View 而不是 UILabel [关闭]