對(duì)于mPaaS而言,如果說有什么折磨我最久痢缎,且讓我糾結(jié)最深独旷,那么一定是navigationbar的設(shè)置了嵌洼。從最初剛剛開始搭架子開始封恰,到接下來對(duì)落地頁的navbar的設(shè)置,再到微應(yīng)用和h5容器的navbar诺舔。對(duì)框架的一步步摸索鳖昌,到找到暫時(shí)的解決辦法,再到最后終于梳理清楚了一些線索低飒。
因?yàn)槲业墓こ淌腔趍PaaS的tab框架建立的许昨,所以每個(gè)tab頁面的title, titleview, leftbarbuttonitem以及rightbarbuttonitem都對(duì)應(yīng)的是tab頁viewcontroller的這些屬性。這塊兒無可厚非褥赊。
但是有一點(diǎn)要注意的是糕档,這些tab頁面的屬性設(shè)置是在tabcontroller的didselect函數(shù)里生效的,所以剛進(jìn)入app的落地頁的相關(guān)屬性設(shè)置就比較重要了拌喉。
就比如我對(duì)navbar的背景色等等做出設(shè)置
這個(gè)設(shè)置其實(shí)在剛啟動(dòng)app時(shí)的落地頁里面并不是立即生效的翼岁。所以可能需要在viewwillappear里面單獨(dú)進(jìn)行同樣的設(shè)置司光。
最重要的是琅坡,上面的navbar設(shè)置在以下場(chǎng)景下并不生效——nebula容器啟動(dòng)的h5應(yīng)用。對(duì)此我很快就放棄了上面的方式残家,因?yàn)榇_實(shí)是不生效啊榆俺,后來發(fā)現(xiàn)h5這塊兒的設(shè)置要復(fù)雜一些。title格式設(shè)置都這么不小白坞淮,心疼大佬為我們小白做的框架茴晋。
要是更改左側(cè)返回按鈕,復(fù)雜度似乎更高了回窘。并且號(hào)稱自定義LeftBarItem, 將失去 kNBEvent_Scene_NavigationItem_Left_Back_Click 事件支持诺擅。意思事件還得自己重新做,有待進(jìn)一步學(xué)習(xí)考察啡直。
還有一塊兒就是浸入式搜索框烁涌,就是外層做成一個(gè)button苍碟,點(diǎn)擊進(jìn)入到新的頁面進(jìn)行搜索。這個(gè)時(shí)候在新的搜索頁面里撮执,我們希望的navbar就是搜索框微峰,所以默認(rèn)的navbar我們就不再希望它展示了。
這個(gè)時(shí)候我們就是在viewwillappear里面把默認(rèn)navbar呢hide掉抒钱,但是在viewwilldisappear里面呢把默認(rèn)的navbar的hide屬性再設(shè)置為false蜓肆。這樣的話,就不至于從這個(gè)view跳到別的view的時(shí)候默認(rèn)的navbar也不顯示谋币。