UINavigationBar 與UINavigationItem ,UINavigationController,UIViewController關係(1)

幾個有聯繫且比較相似的東西,容易搞混亂,這次徹底搞明白,並記錄下來

1:首先UINavigationController  是導航控制器  控制添加到其中的視圖控制器UIViewController

2:  navigationBar是UINavigationController的一個屬性,就是顯示在界面上方的導航條bar

可以在UINavigationController中   用self.navigationBar調用     

self.navigationBar.backgroundColor = [UIColoryellowColor];

也可以在UIViewController中  用self.navigationController.navigationBar調用   

self.navigationController.navigationBar.backgroundColor = [UIColoryellowColor];


不管在哪裏調用,調起的都是同一個navigationBar,也就是說在UINavigationController中 設置navigationBar的屬性,會同步發生作用到所有UIViewController界面。

例如:MyNavigationController導航控制器中加入 viewControllerA和  viewControllerB.  如果在MyNavigationController設置navigationBar的背景爲紅色,則viewControllerA和  viewControllerB的導航條的背景都爲紅色,在viewControllerA設置navigationBar的背景爲藍色,push到viewControllerB中,導航條也爲藍色

3: navigationItem是UIViewController的一個屬性,目的是設置在本界面navigationBar的顯示內容             navigationItem和navigationController是同級別的屬性

navigationItem也有自己的屬性 

title :標題名稱

titleView:標題視圖(用來自定義)

leftBarButton: 左邊按鈕(也可以設置多個,自行百度)

rightBarButton:右邊按鈕

4:navigationItem與UINavigationBar,就是mvc模式,UINavigationBar就是View,只有一份,顯示在每個viewController界面,而每個viewController都有一個navigationItem屬性,用來設置本界面navigationBar要顯示的內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章