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

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

【问题讨论】:

  • 你能显示一些代码吗?你现在想达到什么目标?

标签: ios swift uitableview uipageviewcontroller


【解决方案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 重复此操作。

相应地定制......

【讨论】:

    猜你喜欢
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多