接收推送通知时打开特定标签栏

use*_*343 3 cocoa-touch objective-c tabbar push-notification ios

如何在收到推送通知时打开特定标签栏?

我已经放在[self.tabBarController setSelectedIndex:2];viewDidAppear上,发生了什么,在数据记录中,它显示它通过tabBar 2 viewController,但它没有打开/显示该页面并保留在firstView控制器/第一个tabBar.

然后在我终止应用程序并打开后,自动/突然打开tabBar 2 viewController.

谁能提出任何想法或示例代码来解决这个问题?

这是在我的didReceiveRemoteNotification中;

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

    NSLog(@"Remote notification received");

    if([userInfo valueForKey:@"app"]) {

        NSString *action_app = [userInfo valueForKey:@"app"];
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        [defaults setObject:action_app forKey:@"app"];

        NewVC *sample=[[NewVC alloc]init];
        [sample viewDidLoad];

        //[self.tabBarController setSelectedIndex:2];

        [self clearNotifications];

    }else{

        NSLog(@"---nothing to read---");
    }
}
Run Code Online (Sandbox Code Playgroud)

NewVC位于tabbar 2.

Tos*_*lji 10

您必须更改tabbar selectedIndex,如,

- (void)application:(UIApplication *)application  didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if([userInfo valueForKey:@"app"]) {

      NSString *action_app = [userInfo valueForKey:@"app"];
      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
     [defaults setObject:action_app forKey:@"app"];

   UITabBarController *tabb = (UITabBarController *)self.window.rootViewController;
   tabb.selectedIndex = 2;
 }
}
Run Code Online (Sandbox Code Playgroud)