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

问题描述 投票:0回答:1

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

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

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

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

ios push-notification
1个回答
2
投票

你可以处理你的应用,当你点击本地或推送通知,在你的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];

}
© www.soinside.com 2019 - 2024. All rights reserved.