导航控制器默认自带一个根控制器
在AppDelegate.m文件中 初始化创建一个根控制器,且将此导航控制器设置为系统根控制器
FirstViewController * first=[[FirstViewController alloc] init];
UINavigationController * nv=[[UINavigationController alloc] initWithRootViewController:first];
self.window.rootViewController=nv;
导航控制器的存储方式是堆栈的方式,先进后出
1 把页面加入到堆栈中是用push方法,压入
SecondViewController * second=[[SecondViewController alloc] init];
[self.navigationController pushViewController:second animated:YES];
2 把页面跳转到前面的页面用pop方法,推出
>1 跳转到上一页
//推出本页面控制器
[self.navigationController popViewControllerAnimated:YES];
>2 跳转到根视图中
[self.navigationController popToRootViewControllerAnimated:YES];
>3 跳转到之前非前页的任意页面
首先要找到存在堆栈中(数组中)的那页控制器
//必须先找到堆栈中的第二页的控制器
UIViewController *second=self.navigationController.viewControllers[1];//面向对象的多态的概念,用父控制器来写
[self.navigationController popToViewController:second animated:YES];
全局就一个导航栏