关于导航控制器的一点思考:
<1. 只要是控制器本身就有一个视图,这或许也就是iOSMVC模式体现的不明显的原因吧
<2. 导航控制器也有一个视图,并且视图上还有子视图 ->导航条
<3. 导航控制器有一个可以存放视图控制器的数组属性
<4. 当你可以管理这个对象的时候,首先你得拥有这个对象的所有权或者是对象的地址,
为什么导航控制器可以管理这么多的视图控制器?
也没有看到任何的add或者其他的拥有视图控制器对象所有权的操作
: 当导航控制器push或者initWithRootViewController时,
导航控制器中存放视图控制器的数组就会执行add操作,这就是我们为什么要理解好Foundation框架中数组的原因
当数组中add一个对象时,就保留了这个对象,拥有了这个对象的对象所有权。
当push到一个新的视图控制器时,数组中索引最大的对象(视图控制器)的视图显示
数组在我们的概念中一般是横向排列,这里可以把数组竖向排列。将数组可以看成一个栈。
索引最大在栈顶,索引最小在栈底
- (void)pushViewController:(UIViewController*)viewController animated:(BOOL)animated
Description
Pushes a view controller onto the receiver’s stack and updates the display.
In addition to displaying the view associated with the new view controller at the top of the stack, this method also updates the navigation bar and tool bar accordingly. For information on how the navigation bar is updated, seeUpdating the Navigation Bar.
how to update 导航条的位置,大概是 bringToFront .. 调整了导航条的位置,将其调整到最顶部显示 bringToFront ..
网友评论