#13-導(dǎo)航控制器管理原則#

04- 導(dǎo)航控制器管理原則

程序一進(jìn)入時(shí),就要讓窗口的根控制器是一個(gè)導(dǎo)航控制器.
1.新建窗口
2.創(chuàng)建導(dǎo)航控制器.并設(shè)置導(dǎo)航控制器的根控制器
3.把導(dǎo)航控制器設(shè)為窗口的根控制器.
4.顯示窗口.


說(shuō)明:1.當(dāng)設(shè)置導(dǎo)航控制器的根控制器時(shí),也就是initWithRootViewController,
      它底層其實(shí)是調(diào)用了導(dǎo)航控制器的push方法.把該控制器添加為導(dǎo)航控制器的子控制器.
      并且它會(huì)把該控制器的View添加到導(dǎo)航控制器專門(mén)存放子控制器的View上面.
    2.把導(dǎo)航控制器設(shè)為窗口的根控制器時(shí),它就會(huì)把導(dǎo)航控制器的View添加到窗口的View上面.
      所以程序一運(yùn)行時(shí), 我們看到的就是一個(gè)導(dǎo)航控制器的View.
      導(dǎo)航控制器的View內(nèi)部默認(rèn)有兩個(gè)子view.一個(gè)是導(dǎo)航條, 一個(gè)是轉(zhuǎn)專存放子控制器的View.
      現(xiàn)在專門(mén)存放子控制器的View里面存放的就是導(dǎo)航控制器根控制器的View.
      
導(dǎo)航控制器的子控制器都是存放到一個(gè)棧中.也就是一個(gè)數(shù)組當(dāng)中.

當(dāng)調(diào)用導(dǎo)航控制器的push方法時(shí), 就會(huì)把一個(gè)控制器壓入到導(dǎo)航控制器的棧中.
壓入棧中是, 那么剛壓入棧中的這個(gè)導(dǎo)航控制器就在棧的最頂部.
它就會(huì)把原來(lái)導(dǎo)航控制器View當(dāng)中存放的子控制器View的內(nèi)容移除,
然后把導(dǎo)航控制器棧頂控制器的View添加到導(dǎo)航控制器專門(mén)存放子控制器View當(dāng)中.
注意:只是把控制器的View從導(dǎo)航控制器存放子控制器的View當(dāng)中移除,并沒(méi)有把控制器從棧中移除.所以上一個(gè)控制器還在.

當(dāng)調(diào)用pop當(dāng)方法時(shí), 就會(huì)把導(dǎo)航控制器存放子控制器View當(dāng)中控制器的View移除,并且會(huì)把該控制器從棧里面移除.
此時(shí)該控制器就會(huì)被銷毀.接著它就會(huì)把上一個(gè)控制器的View添加到導(dǎo)航控制器專門(mén)存放子控制器的View當(dāng)中.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容