单击通知时更改选项卡栏

时间:2017-04-26 19:31:11

标签: swift push-notification uitabbarcontroller appdelegate onesignal

每当用户收到通知并单击它时,都应将其带到该特定选项卡。例如,当用户收到消息并打开通知时,应该打开应用程序,但应打开消息选项卡。想想推特& DM的。 在我的项目中,我试图实现非常相似的东西。在appdelegate和notificationReceived(OneSignal for Push通知)中,我试图这样做:

 let sb: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let messageNavigationController: UINavigationController = sb.instantiateViewController(withIdentifier: "MessagesNav") as! UINavigationController
            self.window = UIWindow(frame: UIScreen.main.bounds)
            self.window?.rootViewController = messageNavigationController
            self.window?.makeKeyAndVisible()

但没有任何反应。每当用户收到通知时,应用程序只会打开一个主选项卡(选项卡0)。我做错了什么?

1 个答案:

答案 0 :(得分:1)

我不知道你是什么意思的notificationReceived,这不是UIApplicationDelegate的预定义函数。如果您想在OneSignal发生推送通知时打开不同的页面,您应该将处理功能传递给handleNotificationAction OneSignal.initWithLaunchOptions

您还提到更改标签控制器中的标签,但您粘贴的代码是将根视图设置为UINavigationController。如果您确实想要更改标签,则需要获得对标签控制器的引用并在其上设置正确的selectedIndex