iOS点击推送通知打开具体的viewcontroller

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS点击推送通知打开具体的viewcontroller相关的知识,希望对你有一定的参考价值。

当用户点击推送通知时,是否可以打开具体的viewcontroller?

我有新闻应用程序,主视图控制器有很多新闻,当用户点击一些新的我打开下一个viewcontroller与此消息的描述。

当用户点击推送通知时,我如何打开第二个视图控制器?

我试图将Notification发送到我的UINavigationController并推送两个控制器,但它不能正常工作,它只打开第一个viewcontroller。

答案

你可以处理你的应用,当你点击本地或推送通知,在你的AppDelegate.m中实现application:didReceiveLocalNotification:application: didReceiveRemoteNotification:方法

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

}

-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {

}

如果您的应用已关闭(不在后台),您可以验证是否收到了通知

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    NSDictionary *userInfo = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
    if ( userInfo != nil )
        [self application:application didReceiveRemoteNotification:userInfo];
}

我不知道你是如何处理你的新闻的,但你可以向你的主视图控制器发布一个通知,告知你已收到通知,传递“id”或新的信息,然后创建你的第二个视图控制器(你需要验证你的MainViewController是否已经在你的NavigationController堆栈中创建了):

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {

    [[NSNotificationCenter defaultCenter] postNotificationName:@"IHaveReceivedANotification" object:nil userInfo:userInfo];

}

以上是关于iOS点击推送通知打开具体的viewcontroller的主要内容,如果未能解决你的问题,请参考以下文章