//1.创建窗口对象
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
//2.首先创建视图控制器
FirstViewController *firstVC = [[FirstViewController alloc]init];
firstVC.view.backgroundColor = [UIColor blueColor];
//视图控制器存在系统属性 .navigationController用来保存导航控制器对象
NSLog(@"加入导航控制器之前:%@",firstVC.navigationController);
//1.导航控制器是管理视图控制器的容器类型的视图控制器
//2.导航控制器是以栈的形式管理视图控制器的
//3.在导航控制器上显示的是在导航控制器的栈顶位置的视图控制器的view
//4.当往导航控制器的栈中加入一个视图控制器时,加入的代码会自动设置视图控制器的navigationController的属性为导航控制器
//3.然后创建导航控制器,并且将firstVC作为导航控制器的根视图控制器
UINavigationController *navCtrl = [[UINavigationController alloc]initWithRootViewController:firstVC];
NSLog(@"加入导航控制器之后:%@",firstVC.navigationController);
navCtrl.view.backgroundColor = [UIColor redColor];
//导航控制器是以数组的形式来模拟栈,viewControllers属性中保存了导航控制器上的所有的视图控制器
//当压入一个视图控制器时,会自动的将这个视图控制器添加到viewControllers数组中
NSLog(@"%@",navCtrl.viewControllers);
//4.最后设置导航控制器为窗口的根视图控制器
self.window.rootViewController = navCtrl;
//让窗口可见
[self.window makeKeyAndVisible];
- (void)createBtn
{
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(30, 70, 300, 40)];
[btn setTitle:@"进入下一级VC" forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:26];
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
}
//定义点击响应方法
- (void)btnClick:(UIButton *)btn
{
SecondViewController *secondVC = [[SecondViewController alloc]init];
//获取当前对象的导航控制器,并将新的视图控制器压入进来
[[self navigationController] pushViewController:secondVC animated:YES];
}
//创建窗口对象
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
//创建导航控制器
UINavigationController *navCtrl = [[UINavigationController alloc]init];
//设置导航控制器为窗口的根视图控制器
self.window.rootViewController = navCtrl;
navCtrl.view.backgroundColor = [UIColor redColor];
FirstViewController *firstVC = [[FirstViewController alloc]init];
firstVC.view.backgroundColor = [UIColor blueColor];
//firstVC.view.alpha = 0.5;
SecondViewController *secondVC = [[SecondViewController alloc]init];
secondVC.view.backgroundColor = [UIColor blueColor];
secondVC.view.alpha = 0.5;
//往导航控制器中压入视图控制器
//在导航控制器上显示的view是最后压入的控制器的view
[navCtrl pushViewController: firstVC animated:YES];
[navCtrl pushViewController:secondVC animated:YES];
//让窗口可见
[self.window makeKeyAndVisible];