标签:
一、导航控制器基本使用
多控制器
导航控制器
导航控制器的简单使用
1.创建一个空项目
2.创建导航控制器nav
3.设置导航控制器为Window的根控制器
4.新建3个控制器类管理这3个View(勾上also create xib)
在xib中添加一个标签用来注明是第几个控制器,添加一个按钮用来跳转到下一个控制器
5.创建第一个控制器并添加到导航控制器中
[nav pushViewController:one animated:YES];
6.监听用来跳转到第二个的按钮并实现方法
-(IBAction)jump2Two:(id)sender{
//1.创建第二个控制器
//2.将第二个控制器添加到导航控制器中
//只要当前控制器是导航控制器的子控制器,就可以通过该属性直接获取到当前控制器所在的导航控制器
[self.navigationController pushViewController:two animated:YES];
}
7.监听第二个子控制器上的跳转到第三个的按钮并实现该方法。
-(IBAction)jump2Three:(id)sender{
//1.创建第三个控制器
//2.将第三个控制器添加到导航控制器中
[self.navigationController pushViewController:three animated:YES];
}
二、导航控制器的管理
导航控制器是通过栈的形式来管理子控制器的(先进后出类似羽毛球桶)
导航控制器的view结构
====>
创建One控制器(被放到导航控制器的栈中)-->自动创建One控制器的View并放到导航控制器的View之上。
再创建Two控制器(被放到导航控制器的栈中)-->自动创建Two控制器的View并将One控制器的View推开,所以显示的是Two控制器的View,
注意:此时One的View并没有销毁
=====>
再创建Three控制器(被放到导航控制器的栈中)-->自动创建Three控制器的View并将Two控制器的View推开,所以显示的是Three控制器的View,注意:此时One的View和Two的View并没有销毁
PS:显示在导航控制器上的view永远是栈顶控制器的view
当点击back时,就会将Three控制器从导航控制器的栈中移除并销毁,同时Three控制器的View也被销毁,此时栈顶控制器由Three控制器变为Two控制器,所以现在屏幕上显示的是Two控制器的View,
再点击back时,就会将Two控制器从导航控制器的栈中移除并销毁,同时Two控制器的View也被销毁,此时栈顶控制器由Two控制器变为One控制器,所以现在屏幕上显示的是One控制器的View
iOS基础-UIKit框架-多控制器管理-UINavigationController
标签:
原文地址:http://www.cnblogs.com/marshall-yin/p/4728442.html