目前只接触了一种controller,就是UIViewController。
navigation controller负责管理多个ViewController。负责多个页面的调整。
页面的层级关系:
当有层级关系,横向变换的。手机的“通用设置”中的相关信息。
无层级关系的上下变换的。如登陆界面。
添加navigation controller
1、选择当前项目生成的
第二个方法添加:
把它自带的第二个页面删除。
箭头代表的是 程序运行起来的第一个页面。
让箭头指向 导航控制器
按住Control键连到 ViewController中。选择root ViewController选项。
导航控制器是用来控制几个页面之间跳转的。
选择RootViewController,表面那个ViewController是第一个页面。
此时运行程序,可以看到多了一个NavigationBar,多了一个导航栏。
加一个标题:
有了这个导航控制器
跳转页面的方法。
先准备一个页面。新建一个SecondViewcontroller 继承与 UIViewController。
导入:
Viewcontroller中拖拽一个button关联事件。
因为导航控制器的作用就是控制页面的跳转。所以只要加了导航控制器。所有的ViewController都有这个属性。
self.navigationController 拿到的是当前所管理它的navigationController。
调用 pushViewController方法。
- (IBAction)clicked:(id)sender {
//点击按钮跳转到第二个界面,先创建一个页面
secondViewController *vc = [[secondViewController alloc]init];
//之前的跳转方法
// [self presentViewController:vc animated:YES completion:nil];
//使用导航控制器跳转
[self.navigationController pushViewController:vc animated:YES];
}
给SecondViewController加个背景色
通过导航控制器控制的跳转。不用自己写“返回”。导航栏有。
若要自己写返回:
用个timer控制其1s返回。
事件是:
-(void)backAction{
//返回到上一个页面
[self.navigationController popViewControllerAnimated:YES];
}
popToRootViewControllerAnimated:<#(BOOL)#>
返回到根视图
popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>
返回到历史页面中得某一个。