我正在尝试从推送通知中打开我的应用程序时显示视图控制器,但是由于我试图获取UINavigationController(它尚未在AppDelegate didFinishLaunchingWithOptions函数中进行初始化)而导致崩溃。
我的代码是这样的:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
if let userInfo = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? NSDictionary {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let profileController = storyboard.instantiateViewControllerWithIdentifier("profileViewControllerIdentifier") as! ProfileViewController
let navigationController = self.window?.rootViewController as! UINavigationController
navigationController.pushViewController(profileController, animated: false)
}
}
在关闭应用程序时从推送通知中显示ViewController的正确方法是什么?
最佳答案
因此,我看到的主要原因是您的rootViewController
不是UINavigationController
。可能是因为:
rootViewController
是另一个UIViewController
UINavigationController
未设置为rootViewController
。 因此,如果没有关于
self.window?.rootViewController
的信息,我想可以运行此行以查看是否可以得到UINavigationController
:var myNav = storyboard.instantiateViewControllerWithIdentifier("myNavIdHere") as? UINavigationController
只需确保将一个ID添加到您的UINavigationController中即可。 (这只是检查您是否可以到达NavController)
关于ios - 关闭应用程序时从推送通知中显示ViewController的正确方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33962177/