UINavigationController 如何成为 UITableView 的 navigationController?

Posted

技术标签:

【中文标题】UINavigationController 如何成为 UITableView 的 navigationController?【英文标题】:How a UINavigationController becomes navigationController of a UITableView? 【发布时间】:2016-04-07 15:21:49 【问题描述】:

当我通过将 UITableViewController 作为其根视图控制器传递来初始化 UINavigationController 时,我可以通过 UITableViewController 属性“navigationController”获取 UINavigationController。我想知道:

    是否在初始化期间自动设置此类属性? navigationController 是 UITableViewController 或其父类实现的某个协议的属性吗?

【问题讨论】:

没关系,可能会改变。 您的意思是UINavigationController 而不是UINavigationBar?还有navigationController 而不是navigationBar 这里似乎有很多混乱...... UINavigationBar 没有根视图控制器。 UITableView 不是视图控制器......你想要实现什么? 你的意思是UITableViewController而不是UITableView 显示代码,这样我们就不会在 cmets 中混淆:P 【参考方案1】:

UINavigationController 呼叫[rootViewController didMoveToParentViewController:self]

通过这个方法,viewcontrollers 知道他们被添加到哪里了。

viewcontrollers 也有 getter parentViewControllernavigationController 只是方便获取器,将parentViewController 转换为UINavigationController *

【讨论】:

以上是关于UINavigationController 如何成为 UITableView 的 navigationController?的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义 UINavigationController?

如何扩展 UIView 过去包含 UINavigationController

如何从 UINavigationController 隐藏 UINavigationBar?

UINavigationController如何设置标题

如何在 UINavigationController 中嵌入 UITabBarController?

iOS中如何自动回调UINavigationController的BackItem?