当我在Xcode中创建单个视图应用程序时,它启动了一个使用viewDidLoad函数加载的ViewController类。
我做了一些研究,但似乎无法弄清楚如何更改此默认加载行为。
我想做的是: 首先打开一个名为ContextManager的类。 然后,这个上下文管理器会调用我想要的任何ViewController类。
我相信我需要在AppDelegate.swift中使用这个委托:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
我没有得到的是如何调用或打开初始的ViewController类,我没有看到委托调用它。
如果您可以建议我如何拦截此加载事件,而是让我的ContextManager成为第一个被称为赞赏的类。
谢谢
答案 0 :(得分:2)
您必须手动创建主窗口和初始视图控制器,而不是让UIApplicationMain
这样做。
首先,选择目标并清除主界面。这可以防止UIApplicationMain
尝试设置窗口和初始视图控制器:
然后,在application:didFinishLaunchingWithOptions:
中,手动创建窗口,并从故事板中加载您选择的视图控制器。例如,在这里我在视图控制器之间随机选择故事板ID为“1”和“2”:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
window = UIWindow(frame: UIScreen.mainScreen().bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let choice = "\(arc4random_uniform(2) + 1)"
window?.rootViewController =
storyboard.instantiateViewControllerWithIdentifier(choice) as? UIViewController
window?.makeKeyAndVisible()
return true
}