不是主/根视图时的 UINavigationController 用法

Posted

技术标签:

【中文标题】不是主/根视图时的 UINavigationController 用法【英文标题】:UINavigationController usage when not the main/root view 【发布时间】:2010-02-06 20:41:52 【问题描述】:

当 UINavigationController(带有 Interface Builder)不在应用程序的根目录时,我在使用 UINavigationController 时遇到了一些麻烦。我发现了许多示例,这些示例演示了如何在这些控制器之一位于应用程序的根目录时使用它(在 MainWindow.xib 中);但是,我的应用程序不是这样构造的。我有一个 UIScrollView 这是我的主要显示。在滚动视图屏幕中,我有一个“设置”按钮。当按下该按钮时,我希望下一个视图控制器显示为具有 UINavigationController 的屏幕。该屏幕是典型的带有分组表的“设置”屏幕。一旦点击了一个单元格,导航控制器就会将另一个控制器推送到包含相关设置选项的堆栈中。

我的主要问题是了解如何在这种情况下实现 UINavigationController。如果有人有任何示例或建议,将不胜感激。

请不要简单地将我指向有关视图控制器或导航控制器的 Apple 文档。我已经阅读了这些文件,但我仍然没有得到它。我需要一些真正的帮助和建议。

【问题讨论】:

我现在也在想同样的事情。很遗憾,您似乎没有得到太多帮助。 【参考方案1】:

嗯,你需要重新阅读那些文档,特别是UINavigationController 上的文档。

你错过的一点是你没有实现UINavigationController。您使用该类并在其上推送您自己的视图控制器。

您似乎还将UINavigationControllerUITableViewController. The two are completely different. Your settings would be implemented as aUITableViewControllersubclass and pushed on a theUINavigationController` 混淆了。

【讨论】:

对我来说问题不在于语义。实施,使用......无论如何......它也与将导航控制器与tableview控制器混淆无关。我试图在 IB 中设置它,认为这是最简单的。实际上,用代码来做是最简单的。

以上是关于不是主/根视图时的 UINavigationController 用法的主要内容,如果未能解决你的问题,请参考以下文章

应用程序启动时的视图协调器:我应该使用视图控制器还是其他东西?

iOS:从任何地方返回根视图控制器

当多个tableViewControllers(没有故事板)时如何pushViewController

如何将约束添加到根视图而不是 TopLayoutGuide?

主细节应用程序初始视图控制器更改

addSubLayer 到 UIView 而不是根视图