I think it depends more on the application architecture. Here I have, for example, several NavigationControllers and everyone has a transition to the chat. Duck chat control accepts the model of interlocutors as input and so I can call it anywhere via push, having formulated all the data models for chat control before that.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { UINavigationController *navController = (UINavigationController *)self.window.rootViewController; NotificationViewController *notificationViewController = [[NotificationViewController alloc] init]; [navController.visibleViewController.navigationController pushViewController:notificationViewController]; }
But in this example, I push immediately to chat without intermediate screens. If the task is to skip to where the chat went through the intermediate screen, then you need to come up with some kind of transition algorithm with a certain path of push screens with animation, with a block for completing the animation and pushing the next control in the path. In general, many options, in fact, it all depends on the TK.