私のアプリケーション階層は次のようになっています。
tabBarController >> navigationControllers (multiple) >> viewControllers (multiple)
で特定のイベントが発生したときappDelegate
に、navigationControllerの1つで特定のviewControllerをプッシュしたい。今のところ私はこれを持っています:
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];
これは、アプリケーションが現在targetViewControllerと同じnavigationControllerにある場合にのみ機能します。アプリケーションのどこにいても機能するようにしたいと思います。ありがとう!