iOS开发UINavigation系列四——导航控制器UINavigationController
一、引言
在前面的博客中,我么你介绍了UINavigationBar,UINavigationItem和UIToolBar,UINavigationController是将这些控件和UIViewController紧密的结合了起来,使用导航,我们的应用程序层次会更加分明,对controller的管理也更加方便。前几篇博客地址如下:
UINavigationBar:http://my.oschina.net/u/2340880/blog/527706
UINavigationItem:http://my.oschina.net/u/2340880/blog/527781
UIToolBar:http://my.oschina.net/u/2340880/blog/528168
二、导航控制器的创建和controller的管理
导航控制器是一个堆栈结构,只是其中管理的对象是controller,通过push与pop进行controller的切换,我们有两种方式可以创建导航控制器:
1 2 3 4 |
|
通过以下方法对视图控制器进行管理操作:
1 2 3 4 5 6 7 8 9 10 |
|
三、导航控制器中的常用方法和属性
1 2 3 4 |
|
上面两个方法的区别在于,topViewController是返回被push出的最后一个controller,但是如果之后又有present进行莫泰跳转,visibleViewController会返回当前显示的controller。例如A-push-B-present-C,则topViewController会返回B,visibleViewController会返回C。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
四、iOS8后导航的新特性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
iOS8中增加的这些方法,不得不说着实在用户体验生进了一大步,从中也可以看出apple对于用户体验度的用心。
五、UINavigationDelegate
导航控制器还提供了一些代理回调方法,如下:
1 2 3 4 5 6 7 8 9 10 11 |
|
六、与UIViewController相关
当一个controller被添加到导航中后,系统会为它分配一些属性,如下:
1 2 3 4 5 6 |
|