Есть три viewController
, MainViewController
ViewControllerB
и ViewControllerC
.
MainViewController
будет загружено при запуске приложения.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
MainViewController * main = [[MainViewController alloc]init];
UINavigationController * navigationController = [[UINavigationController alloc]initWithRootViewController:main];
self.window.rootViewController = navigationController;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
return YES;
}
и есть button
на MainViewController
, присутствует ViewControllerB
,
UIViewController *rootViewController = [[UIApplication sharedApplication].keyWindow rootViewController];
ViewControllerB * vcb=[[ViewControllerB alloc] init];
[rootViewController presentViewController:vcb animated:YES completion:nil];
После появления ViewControllerB
нажмите кнопку ViewController
C.
но navigationController
- это nil
. Это не может толкать ViewControllerC
[self.navigationController pushViewController:vcC animated:YES];