一。导航控制器基础
1.导航控制器的组成
i。中间视图
ii。导航栏
iii。工具栏
2.配置一个导航界面
a。配置一个导航界面最重要的部分就是配置被包含的视图控制器。
b。当它所属的视图控制器在导航控制器所控制的堆栈的顶部时(即该视图控制器将要显示时),系统自动显示该视图控制器的UINavigationItem。开发人员无需编写任何代码来调用UINavigationItem。
c。
3.配置导航视图控制器
a。可以使用UINavitionController的pushViewController:animated:方法将后面的视图控制器压入栈,从而显示它的视图。给定的视图控制器成为顶视图。对于弹出一个视图控制器,其实不需要做什么,界面上有一个后退按钮,用户点击它,顶视图将自动从栈中弹出。
b。可以使用下面的这些方法从栈中弹出视图控制器:
c。总之,UINavigationController提供了两个方法来管理堆栈。
例如:当调用下一个视图控制器(即从一个界面切换到另一个界面,如用户选择了某个联系人名字)时,应该使用下面的方法将下一个视图控制器(从用户的角度,即下一页)推到堆栈中:
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;
当用户单击返回按钮来返回到上一个视图控制器时,popViewControllerAnimated就会被调用。所以开发人员无需自己调用popViewControllerAnimated方法。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated;
d。导航控制器本身有个viewController属性,该属性是一个NSArray,包含了栈上的条目。
因此,根条目是数组的objectArray:0,顶条目也就是它的lastObject,也可以使用topViewController属性得到顶条目。
但是,导航控制器还有一个visibleViewController属性,因为topViewController也许包含另一个视图控制器并显示它的视图,所以visibleViewController和topViewController可能不同。
e。
4.视图控制器的事件
**************************************
二。创建导航控制器实例
1.在两个页之间导航实例
2.在两个页之间传递数据
经常需要在两个页之间传递数据,这个必须掌握。
一个常规的做法是:在下一个视图控制器上声明所属的属性。然后,当上一个视图控制器调用下一个视图控制器时,就可以设置这些属性值。从而,第二个视图控制器就获得了第一个视图控制器传递过来的数值。
例如:
当然,如果想从第二个视图控制器那里会传个第一个视图 ,需要委托。
3.定制返回按钮
在默认的情况下,下一页上的返回按钮的文字是上一页的标题,但是也可以在程序中修改为其他文字(但是要记住:返回按钮是放在上一页的视图控制器上)。
4.在导航控制栏上添加系统按钮和左右按钮