从推送通知打开特定的ViewController

时间:2013-06-10 14:48:43

标签: objective-c uiviewcontroller push-notification apple-push-notifications

在我的xcode项目中,我有一些视图和标签栏控制器。当我打开我的应用程序时,第一个视图出现了。我还有一个服务器向应用程序发送一些推送通知。

我使用AppDelegate.m

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

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);

     }
}

我的问题是:当我打开通知时,如何打开特定视图(在本例中称为“AnswerDetailsVC”)?从标签栏上的第4个视图打开特定视图。

1 个答案:

答案 0 :(得分:0)

如果检测到推送通知有效负载是打开AnswerDetailsVC的正确值,只需设置标签栏的选定标签,如下所示:

//  Open 4th tab in tabbar
self.tabBarController.selectedIndex = 3;

编辑: 您可以在给定选项卡上访问控制器并调用所需的任何公共方法。因此,您可以手动调用按钮操作或准备公共方法,该方法在通知后生成您想要执行的操作,并在收到通知时调用它

示例代码:

//  Get controller at given tab
AnswerDetailsVC *myController = (AnswerDetailsVC *)[[self.tabBarController viewControllers] objectAtIndex:2];
//  Call button action or whatever public method you want
[myController buttonAction:nil];