Ouvrir une barre d'tabs spécifique lors de la réception d'une notification push

Comment puis-je ouvrir une barre d'tabs spécifique lorsque je reçois une notification push?

j'ai déjà mis [self.tabBarController setSelectedIndex:2]; sur viewDidAppear et ce qui se passe est dans la journalisation des données, il montre qu'il passe par tabBar 2 viewController mais il ne s'ouvre pas / montrant cette page et rest sur le controller firstView / premier tabBar.

et puis après avoir terminé l'application et l'ouvrir, automatiquement / tout à coup, il ouvre le tabBar 2 viewController.

quelqu'un peut-il donner une idée ou un exemple de code pour résoudre ce problème?

c'est dans mon didReceiveRemoteNotification;

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSLog(@"Remote notification received"); if([userInfo valueForKey:@"app"]) { NSSsortingng *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---"); } } 

NewVC sont situés dans la barre d'tabs 2 ..

Vous devez changer tabbar selectedIndex comme,

 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { if([userInfo valueForKey:@"app"]) { NSSsortingng *action_app = [userInfo valueForKey:@"app"]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:action_app forKey:@"app"]; UITabBarController *tabb = (UITabBarController *)self.window.rootViewController; tabb.selectedIndex = 2; } } 

Pour Swift

Voici datatables de notification Push:

 { "aps": { "alert" : "Hello Your Order ID 107922341457c134962d002 is Ready. Thank you For choosing us!!", "badge" : "1", "sound" :"default" }, "order": { "item_name" : "Spanish Masala", "order_id":"107922341457c134962d002" , "food_id":"15" } } 

Voici le code dans AppDelegate.swift

  func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { if loginFlag{ if let temp = userInfo["order"] as? Dictionary<Ssortingng, AnyObject> { sharedObject.orderDetailsFromPushNotification = temp if let navController = self.window?.rootViewController as? UINavigationController{ let storyboard = UIStoryboard(name: "Main", bundle: nil) if let myViewController = storyboard.instantiateViewControllerWithIdentifier("tabHome") as? MyTabViewController{ myViewController.selectedIndex = 1 navController.pushViewController(myViewController, animated: true) }} }} }