不要混淆?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ú)效