我在我的UINavigationController中有3个UIViewControllers。 在某些时候,我想要去rootViewController,然后从那里导航到一个新的UIViewController,它不会工作。iOS - 奇怪的导航问题?
有什么建议吗?
- (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
}
尝试使用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];
}
添加延迟是hacky,并设置ViewController不适用于我或者因为我需要让我的根视图控制器 – aryaxt
设置延迟不hacky。这些方法被放入sdk是有原因的 - 在NSRunLoop中做这样的事情。如果需要,可将延迟间隔设置为0.0。并设置视图控制器,同时保持根视图控制器不应该是一个问题。只保存一个对你的根视图控制器的引用,并把它作为你传递给'setViewControllers:animated'的NSArray中的第一个元素,并且你仍然将它作为根 – cpjolicoeur
我试过延迟它不起作用,我尝试设置延迟到15秒,它仍然没有工作 – aryaxt