self.navigationItem和 self.navigationController.navigationItem

不要混淆?self.navigationItem??和?self.navigationController.navigationItem?

UINavigationItem?本身是用來(lái)?定制?ViewController自己在被導(dǎo)航過(guò)程中的?appearance,?navigationItem是

UIViewController類關(guān)于UINavigationControllerItem類別的擴(kuò)展

@interface UIViewController (UINavigationControllerItem)

@property(nonatomic,readonly,retain)UINavigationItem * navigationItem;

...

@end

所以后者(self.navigationController.navigationItem?)?是調(diào)用?VC的所在的導(dǎo)航控制器 自己作為VC的?navigationItem,是導(dǎo)航的疊加。

UINavigationBar?繼承于?UIView,隸屬于整個(gè)?UINavigationController ,用來(lái)定義整個(gè)導(dǎo)航過(guò)程中的導(dǎo)航欄的顏色等

其他數(shù)值,(類似于?self.tabBarController.tabBar? UINavigationBar ,只需要一個(gè)設(shè)置通用的基本屬性),只能通過(guò)

self.navigationController.navigationBar來(lái)訪問(wèn)。

定制于導(dǎo)航堆棧里某個(gè)VC?的時(shí)候,一般通過(guò)self.navigationItem,? ?比如常用的

self.navigationItem.leftBarButtonItem,self.navigationItem.rightButtonItem,?同時(shí)如果自己來(lái)定制導(dǎo)航欄的外觀的話,

就要用到self.navigationItem.titleView,這個(gè)可以直接用一個(gè)?CustomView?賦值于self.navigationItem.titleView即可。

設(shè)置導(dǎo)航按鈕或者標(biāo)題的時(shí)候使用self.navigationItem? ,如果使用self.navigationController.navigationItem? 會(huì)無(wú)效

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。