2013-01-08 47 views
0

我的應用層次正在尋找這樣的:推到特定的viewController從AppDelegate中

tabBarController >> navigationControllers (multiple) >> viewControllers (multiple) 

當某個事件發生在appDelegate我要推一個特定的viewController在navigationControllers之一。現在我有這樣的:

UINavigationController *myNavigationController = [[(UITabBarController*)self.window.rootViewController viewControllers] objectAtIndex:0]; 

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; 
StoreViewController *targetViewController = (StoreViewController*)[mainStoryboard instantiateViewControllerWithIdentifier:@"StoreViewController"]; 

[myNavigationController pushViewController:targetViewController animated:YES]; 

這隻能如果應用程序是目前在相同的navigationController的targetViewController。無論您在應用程序中的什麼位置,我都希望它能夠正常工作。謝謝!

+0

targetViewController.navigationController的值是什麼?如果它設置爲與myNavigationController不同的值,那麼可能是導致問題 –

回答

3

您需要以編程方式切換到特定導航控制器所在的選項卡0,然後再進行推送。

UITabBarController *tbc = (UITabBarController*)self.window.rootViewController; 
tbc.selectedIndex = 0; 
UINavigationController *myNavigationController = tbc.selctedViewController; 
etc...... 

上面的代碼假設你想從一個特定的導航控制器(一個在片0)推targetViewController,但如果你不關心哪個導航控制器推它,然後直接刪除tbc.selectedIndex = 0行。以下行將從當前所選的導航控制器中推出。我不確定你的問題,你想要的。

+0

多數民衆贊成在完美的感謝! – Michael

相關問題