数组会对它里面的每一个元素进行一次强引用,保证不会释放
initwithrootview 但凡是通过initwithroot,add加载的东西也都是强引用了一次
所以,说把局部变量的导航控制器赋值给窗口的根视图时候,导航控制器(局部变量)依然存在,不会销毁
但是,子定义窗口的时候用局部变量就不信行
push的也是强引用了一次
分清楚view,vc
导航控制器有三部分:导航条,存储子控制器view的地盘,存储子控制器的栈
- 导航控制器push 的时候,会做两件事
- 第一把子控制器放入栈的数组里面,并且强引用一次(保证子控制器不会被销毁)
- 第二把子控制器的view贴在导航控制器存储子控制器view的地盘
当有新的视图控制器进来时,会把原来控制器的view移开,但该view不会被销毁,因为该vc被数组强引用了一次,还存在,然后view也被vc强引用了一次,还存在,只是暂时不用(不显示)
pop的时候呢,vc被从数组里面移除,vc不存在,view也不存在了