知識點: 1)UINavigationController 2)UINavigationBar 3)UINavigationItem 4)UIToolBar======================================================一、UINavigationCont...
知識點:
1)UINavigationController
2)UINavigationBar
3)UINavigationItem
4)UIToolBar
======================================================
一、UINavigationController
1、UINavigationController介紹
1)UINavigationController是導航控制器,它通過棧的方式控制當前顯示在屏幕上的是哪個控制器。
2)它可以通過壓入(push)和彈出(pop)來改變控制器的層次。
3)自動提供返回(Back)按鈕,以回到上一個壓入的控制器,不需要額外編程
4)UINavigationController會提供控制器切換的動畫效果
5) UINavgationController通過棧的形式管理多個UIViewController(即多個界面)
6)可以管理當前在導航條(navigationBar)上的導航按鈕
7)UINavgationController為每個接受它管理的UIViewController自動添加UINavigationBar
8)包括四部分: 1⃣️.UINavigationController
2⃣️.UIViewController
3⃣️.UINavigationBar
4⃣️.UINavigationItem
2、導航控制器的跳轉
1)pushViewController: animated: 跳轉,切換到下一個視圖控制器(壓棧)
2)popViewControllerAnimated: 返回上一層(出棧)
3)popToRootViewControllerAnimated: 返回root視圖控制器(根視圖控制器)
4)popToViewController: animated: 返回到指定層
5) setViewControllers:(NSArray<UIViewController *>)animated:同時為UINavgationController設置所有的UIViewController
=====================================================
二、UINavigationBar(受UINavigationController管理)
1、UINavigationBar位於屏幕頂端的控制項,通常只是作為多個UINavigationBar的容器,同樣是以棧的 形式來管理多個UINavigationItem控制項
2、UINavigationBar常用方法和屬性
1)backgroundColor 設置導航欄的背景色,毛玻璃邊效果
2)barTintColor 設置純色背景 3)barStyle 狀態欄系統樣式(很少使用,一般我們都會加上背景圖片)
4)setBackgroundImage: forBarMetrics:
7.0之前,導航的高度為44
7.0之後,導航的高度為64
Metrics 指在什麼狀態下的圖片(橫32,豎64)
a)UIBarMetricsDefault 豎屏
(以下兩個方法使用之前可以先判斷當前的版本號再決定使用哪個)
通過該方法獲取版本號:[[[UIDevice currentDevice] systemVersion] floatValue]
b)UIBarMetricsCompact 橫屏 iOS8.0之後的方法
c)UIBarMetricsLandscapePhone iOS8.0之前的橫屏方法
5) hidden屬性,YES為隱藏導航欄,NO為顯示
=========================================================
三、UINavigationItem
1、UINavigationItem常用方法和屬性
標題相關
1)title 設置導航標題
2)titleTextAttributes 設置導航欄標題的文字大小(key:NSFontAttributeName)和顏色(key:NSForegroundColorAttributeName)
3)titleView 設置標題的UIView(可以使用自定義的)
按鈕相關(UIBarButtonItem)主要有右按鈕rightBarButtonItem、左按鈕leftBarButtonItem,還有多個按鈕
rightBarButtonItems:(NSArray)、leftBarButtonItems:(NSArray)
4)initWithBarButtonSystemItem: target action: 系統自帶的樣式
5)initWithCustomView: 自定義item樣式
6)initWithImage: style: target: action: 以圖片方式設置item樣式
7)initWithTitle: style: target: action: 以文字樣式設置item
8)tintColor 渲染item顏色
9)彈簧效果
這是系統的樣式,得指定彈開的寬度:UIBarButtonSystemItemFixedSpace
width 設置彈開的寬度
這是系統的樣式,會自動彈開:UIBarButtonSystemItemFlexibleSpace
10)hidesBackButton 該屬性設置是否顯示左上角的back按鈕,YES為隱藏
======================================================
四、UIToolBar
1、UIToolBar介紹
1)UIToolBar存在於UINavigationController控制器中
2)UIToolBar預設顯示在UINavigationController的底部位置,且預設被隱藏
3)當我們需要在屏幕的底部加一些按鈕時我們就可以使用UIToolBar來設置他,不需要自己去創建UIView
4)創建UIToolBar需要先創建一個UINavigationController控制器
2、UIToolBar的常用方法和屬性
1)setBackgroundImage: forToolbarPosition: barmetrics:
設置toolBar的背景圖片,UIToolBar的高度為44
2)setToolBarHidden: animated: 設置toolBar的隱藏和顯示