从 NavigationController 以编程方式初始化可重用的表视图控制器

Posted

技术标签:

【中文标题】从 NavigationController 以编程方式初始化可重用的表视图控制器【英文标题】:Programmatic initialisation of reuseable TableViewController from a NavigationController 【发布时间】:2009-09-20 22:55:49 【问题描述】:

我想从一个 Nib 文件以编程方式创建一个导航控制器,然后添加一个表视图控制器(作为它的根控制器)。表格视图控制器需要使用可以更改的数据集进行初始化。

这样我可以在不同的两个地方重用表格视图控制器(一个来自显示所有数据的列表,另一个来自显示子选择的搜索)。表格视图控制器需要设置某些属性来控制它显示的数据。

所以,我的应用程序的高级视图如下所示

标签栏控制器 / \ 导航控制器1 导航控制器2 | | TableViewController(所有数据) SearchController | | DrillDown TableViewController(搜索结果) | 向下钻取

除了显示的数据外,两边的表视图控制器完全相同。

目前 TabBarController 位于主 nib 文件中。 NavigationController2 在 nib 文件中设置,而 NavigationController1 是从不同的 nib 文件创建并在代码中添加到 TabBarController(因此我可以设置它显示的数据)。 NavigationController1 然后以编程方式添加 TableViewController。 SearchController 以编程方式在按钮操作上加载 TableViewController,并缩小数据范围以提供搜索结果。

我使用哪些函数(以及在哪里)设置所有内容以及如何设置表视图控制器的基础数据?

【问题讨论】:

【参考方案1】:

我通过编程而不是从 NIB 创建 NavigationController1 解决了这个问题。

【讨论】:

以上是关于从 NavigationController 以编程方式初始化可重用的表视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

编译错误从应用委托获取 navigationController

从 AppDelegate 调用 navigationController

如果从navigationController弹出时会释放ViewController?

Swift - 如何从 NavigationController 中删除视图控制器?

从 navigationController 访问推送的控制器

NavigationController 不会从函数调用 + swift 推送