收到推送通知时,IOS Swift- App不会打开特定的选定标签栏控制器索引

时间:2016-08-01 15:16:35

标签: ios swift push-notification uitabbarcontroller

我的应用有5个标签栏,每次我收到推送通知,我希望应用程序导航到索引中的第3个标签。当应用程序处于前台或后台(处于活动状态)时,我能够实现它。如果应用程序已关闭,我尝试打开推送通知,应用程序将打开并崩溃。 以下是我的代码

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
{
    let tabbar:UITabBarController = self.window?.rootViewController as! UITabBarController
    tabbar.selectedIndex = 3
}

请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:1)

尝试在diFinishLaunchingWithOptions方法的末尾添加以下代码:

 if let notification = launchOptions?[UIApplicationLaunchOptionsRemoteNotificationKey] as? [String : AnyObject] {
            _ = notification["aps"] as! [String : AnyObject]

            (window?.rootViewController as! UITabBarController).selectedIndex = 3
        }

答案 1 :(得分:1)

您在调试代码吗?如果应用程序在那里崩溃,很可能是window.rootViewController不是UITabBarController。

您可以调试或更改为!在? 和

tabbar?.selectedIndex = 3

如果应用程序没有崩溃,则标签栏控制器位于其他位置。找到它。

另请记住在选项词典中检查您的通知。