在 UINavigationController 内的 UIViewController 内加载 UITableViewController

Posted

技术标签:

【中文标题】在 UINavigationController 内的 UIViewController 内加载 UITableViewController【英文标题】:Load UITableViewController inside UIViewController inside an UINavigationController 【发布时间】:2014-05-13 18:05:08 【问题描述】:

我有一个 UINavigationController 加载它的根视图控制器,它是一个 UIViewController(绿色)。

那个 UIViewController 在导航栏中有一个 UISegmentedControl。它有两个部分,“新闻”和“节目”。默认情况下选择新闻。

News 和 Program 都有自己的 UITableViewController。单击程序(红色)时,我想使用 ProgramViewController 在 UIViewController 中加载子视图。 NewsViewController(蓝色)也会发生同样的情况。

【问题讨论】:

您的问题是什么?你试过什么没用?你在期待什么? 如何在 UIViewController 中加载另一个 UITableViewController,它已经在 UINavigationController 中。我已经尝试以编程方式启动视图控制器并将其添加到子视图中,该子视图加载视图,但不是每个 UITableViewControllers 的子类 tableview 单元格。 使用 UITabBarController 并隐藏标签栏本身。 @David 你有什么好的例子吗? 【参考方案1】:

加载它们并在它们之间交换,要么添加和删除相关的子视图,要么隐藏和取消隐藏顶部的子视图。

顺便说一句,对两个表使用单独的表视图控制器没有任何问题,但也没有必要这样做。如果需要,您可以从保存绿色视图的单个视图控制器中提供两个表。

【讨论】:

我试过 [self.view addSubview:viewController.view] 但这不会加载自定义子类单元格。另外,我知道我可以把它全部放在一个视图控制器中,但是代码会太乱。

以上是关于在 UINavigationController 内的 UIViewController 内加载 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章

在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

从嵌入在 UINavigationController 中的一个视图控制器到另一个 UINavigationController

(Swift) 在嵌套在 Main UINavigationController 中的 UINavigationController 和 UITabController 之间切换

关闭 UINavigationController 并呈现另一个 UINavigationController

带有主 UINavigationController 和详细 UINavigationController 的 UISplitViewcontroller

UINavigationController 标题和按钮