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

时间:2014-02-03 20:19:29

标签: ios push-notification

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

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

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

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

1 个答案:

答案 0 :(得分: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];

}