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

时间:2017-03-21 14:20:04

标签: ios swift uitableview uipageviewcontroller

我想有一个带有几个页面的UIPageViewController,其中所有页面都是UITableView甚至UITableViewController的实例,但我对如何执行此操作感到有点迷茫。我尝试过从Interface Builder中添加它们,但这似乎不可能。

1 个答案:

答案 0 :(得分:0)

我假设您拥有PageVC且已连接VC。建议使用标准VC而不是TableVCs:

这就是我在View Controller中设置TableView的方法

在故事板中:

将TableView拖到“视图”区域。在故事板中的VC标题中选择VC图标(最左侧),然后在“属性”检查器中查看ViewController布局取消选中“调整滚动视图插入”(这将消除桌面视图顶部的一些额外空间。

单击tableview选择它并从tableview再次cntl-drag到VC图标,它将提供与TableViewDelegate和TableViewDatasource的连接。选择一个并重复另一个。

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

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

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

做一个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。

相应裁缝......