gpt4 book ai didi

ios - 关闭应用程序时从推送通知显示 ViewController 的正确方法

转载 作者:搜寻专家 更新时间:2023-11-01 05:38:28 27 4
gpt4 key购买 nike

当我的应用程序从推送通知打开时,我试图显示一个 View Controller ,但它崩溃了,因为我试图获取 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。可能是因为:

  1. rootViewController 是另一个 UIViewController
  2. UINavigationController 未设置为 Storyboard中的 rootViewController

所以没有任何关于你从 self.window?.rootViewController 得到什么的打印,我想你可以运行这条线看看你是否可以得到你的 UINavigationController:

var myNav = storyboard.instantiateViewControllerWithIdentifier("myNavIdHere") as? UINavigationController

只需确保向您的 UINavigationController 添加一个 ID。 (这只是为了检查您是否可以访问 NavController)

关于ios - 关闭应用程序时从推送通知显示 ViewController 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com