【发布时间】:2015-02-05 17:31:49
【问题描述】:
似乎有几种方法可以创建UINavigationController 作为第一个控制器。也许最简单的方法是简单地单击 Storyboard 中的 View Controller 并将其嵌入到导航控制器中。但我想知道仅在代码中执行此操作时的最佳方法。
您可以继承UINavigationController,导入第一个视图控制器,并在viewDidLoad alloc 和init 中添加一个实例,然后将其添加为childViewController。在 Storyboard 中,将默认视图控制器替换为导航控制器,并将类设置为您的导航控制器。请注意,在以前的 iOS 版本中,不建议将 UINavigationController 子类化。
或者你可以创建另一个UIViewController,alloc init第一个视图控制器,然后alloc init一个UINavigationController以那个视图控制器为根,添加导航控制器作为这个视图控制器的子视图控制器,并将导航控制器的视图添加为此视图控制器的视图的子视图。在 Storyboard 中更改视图控制器的类。这是一个尴尬的设置,因为您创建了一个视图控制器,其目的是添加一个导航控制器,但它本身不是导航控制器。
我读过另一种方法,它涉及在AppDelegate 中创建UINavigationController。也许还有更多的解决方案。
什么是最合适的方法,在最新的开发环境中工作,以 iOS 8+ 为目标?
【问题讨论】:
-
“最佳”是一个主观的东西。您对什么具体情况感兴趣?您是在谈论不使用情节提要,还是在情节提要中包含要嵌入导航控制器的初始视图控制器?
-
为什么不在情节提要中进行,并在应用程序委托中查看它为您生成的代码。然后你会看到它是如何完成的。第一个控制器是您在情节提要中选择的作为属性检查器中初始控制器的控制器。
-
@rdelmar 尽可能保持默认故事板不变,在代码中执行所有操作。如果可以将其完全删除,那在这种情况下最好。
标签: ios uiviewcontroller uinavigationcontroller