Swift3,如何在不同的 viewController 中使用相同的 UITableView

Posted

技术标签:

【中文标题】Swift3,如何在不同的 viewController 中使用相同的 UITableView【英文标题】:Swift3, How to use same UITableView in different viewController 【发布时间】:2017-07-26 03:45:06 【问题描述】:

在我的项目中,我的表格包括 xViewController 类中已有的许多单元原型、插座和约束。 我想知道如果我想在 yViewController 类中再次使用这个表。

有可能还是我必须创建一个新的?

【问题讨论】:

【参考方案1】:

您也可以使用ContainerView。您可以根据您的要求单独使用UITableViewControllerUIViewController。我们将这个类称为CommonTableViewController

在您的 XViewController 中,删除 tableview 并将所有代码移动到 CommonTableViewController。从XViewController 的对象库中拖放容器视图。您可以删除 ContainerView 的预定义子项。现在在XViewControllerCommonTableViewController 之间添加embed segue。

YViewController 上拖放容器视图并添加如上所述的segue。

如果您还有任何疑问,请告诉我。

【讨论】:

【参考方案2】:

将您的表视图控制器重构为它自己的专用故事板(在 Interface Builder 中:选择表视图控制器,然后在菜单栏上选择:Editor > Refactor to Storyboard...)。

确保您的表格视图控制器是“初始视图控制器”(在故事板上有一个从左侧指向它的箭头)。

现在,在您希望在其上显示表视图的每个视图控制器的主视图上,插入一个容器视图并将嵌入 segue 的目标替换为表视图的 Storyboard Reference您刚刚创建的 stotyboard。

【讨论】:

以上是关于Swift3,如何在不同的 viewController 中使用相同的 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

如何将计时器中的数据传递给新的 ViewController (Swift 3)

Swift 3 UIStatusBarStyle 不适用于 UINavigationController 中的单独 ViewController

Swift 3 - 在启动时加载多个 ViewController

以编程方式呈现新的 ViewController [Swift 3]

如何在滚动swift3时在UICollectionView中隐藏第0行的锁定图像

如何在 Swift 3.0 中将 TableViewCell 值传递给新的 ViewController?