我在我的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