幾個有聯繫且比較相似的東西,容易搞混亂,這次徹底搞明白,並記錄下來
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要顯示的內容