J'ai 3 UIViewControllers dans mon UINavigationController. À certains points, je veux aller à rootViewController et à partir de là, naviguer vers un nouveau UIViewController, et il ne fonctionne pas.iOS - Problème de navigation bizarre?
Des suggestions?
- (IBAction)goToRootAndNavigateToViewController
{
[self.navigationController popToRootViewControllerAnimated:YES];
MyViewController *mvc = [[MyViewController alloc] init];
[self.navigationController pushViewController:mvc animated:YES];
[mvc release];
//This takes me to the rootViewController but it doesn't navigate to MyViewController
}
Essayer d'utiliser performSelector WithDelay:
- (void)goToRootAndNavigateToViewController
{
[self.navigationController popToRootViewControllerAnimated:YES];
[self performSelector:@selector(doSomething) withObject:nil afterDelay:10];
}
- (void)doSomething
{
MyViewController *mvc = [[MyViewController alloc] init];
[self.navigationController pushViewController:mvc animated:YES];
[mvc release];
}
L'ajout d'un délai est hacky, et la définition de ViewController ne fonctionne pas pour moi non plus parce que j'ai besoin pour garder mon contrôleur de vue racine – aryaxt
la définition d'un retard n'est pas hacky. ces méthodes sont mises dans le sdk pour une raison - pour faire des choses comme ça dans le NSRunLoop. Réglez l'intervalle de délai à 0.0 si vous le souhaitez. et le réglage des contrôleurs de vue tout en gardant le contrôleur de vue racine ne devrait pas être un problème non plus. juste enregistrer une référence à votre contrôleur de vue racine et avoir comme premier élément dans le NSArray vous passez à 'setViewControllers: animated' et vous l'aurez toujours comme la racine – cpjolicoeur
J'ai essayé le retard, il n'a pas fonctionné, j'ai essayé de réglage le délai à 15 secondes et il n'a toujours pas fonctionné – aryaxt