【发布时间】:2015-03-14 10:20:01
【问题描述】:
通常,在情节提要中,我总是使用编辑器 -> 嵌入式导航控制器
这段代码也一样吗?
myNavigationController = UINavigationController(rootViewController: myController)
但问题是您如何像在情节提要中一样附加导航控制器?
【问题讨论】:
通常,在情节提要中,我总是使用编辑器 -> 嵌入式导航控制器
这段代码也一样吗?
myNavigationController = UINavigationController(rootViewController: myController)
但问题是您如何像在情节提要中一样附加导航控制器?
【问题讨论】:
您应该将导航控制器设置为主要UIWindow 的rootViewController。
如果您完全以编程方式创建界面,通常在您的应用委托 application:didFinishLaunchingWithOptions: 中创建主 UIWindow 和主导航控制器,然后将后者分配给前者的 rootViewController 属性。
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var navigationController: UINavigationController?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
self.navigationController = UINavigationController()
var viewController: UIViewController = UIViewController()
self.navigationController.pushViewController(viewController, animated: false)
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window.rootViewController = self.navigationController
...more initialisation...
self.window.makeKeyAndVisible()
return true
}
}
编辑:
在评论中回答你的问题:
当我从编辑器创建导航控制器时是否相同 -> 嵌入导航控制器?我的意思是,如果我从编辑器-> 嵌入导航控制器中执行操作,它会产生与我以编程方式执行的结果相同的结果吗?
这取决于你如何看待它。从用户的角度来看,我会说,是的。从程序员的角度来看,我不会说,因为情节提要会生成一堆其他对象(与场景、转场等相关)
换句话说,如果你只关心创建一个导航视图控制器并附加到你的窗口,故事板会像我上面概述的那样做(加上我之前提到的一堆东西,这些东西不会改变“附加”的最终结果,只是这样做的方式)。
如果您的意思是要重新创建与故事板中创建的设置完全相同的设置,我认为您不能以编程方式创建新的故事板场景,因为 Apple 不会公开所有相关类。
【讨论】: