歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

iOS中的UINavigationController(導航控制器)

UINavigationController

UINavigationControlle:導航控制器,是iOS中最常用的多視圖控制器之一,它用來管理多個試圖控制器

導航控制器可以認為是管理控制器的控制器,主要管理有層級關系的控制器

 

UINavigationController􏳝􏲋􏱪的創建

UINavigationController􏳝􏲋􏱪繼承與UIViewController,以棧的方式管理所控制的視圖控制器,至少要有一個被管理的試圖控制器,這個控制器我們稱作,導航控制器的根視圖控制器

任何繼承自 UIViewController的類(多態)都可以作為根控制器

 

UINavigationController􏳝􏲋􏱪的工作原理

UINavigationController通過棧的方式管理控制器的切換,控制入棧和出棧,來展示各個視圖控制器

UINavigationController的ControllersView裡始終顯示棧頂控制器的view􏱽􏰗􏳩􏰍􏱷􏰞􏳈􏰮􏳂􏲔􏳁􏱢􏲽􏰮􏰒􏳙􏱌

viewControllers􏱽􏰗􏳩􏰍􏱷􏰞􏳈􏰮􏳂􏲔􏳁􏱢􏲽􏰮􏰒􏳙􏱌屬性存儲了棧中的所有被管理的控制器

navigationController􏱽􏰗􏲸􏰑􏳗􏳈􏰮􏱽􏰗􏲸􏱰􏳆􏰠􏰞􏳈􏰮􏰒􏳙􏱌􏲸􏲖􏳟􏲓 􏳜􏰈􏱽􏰗􏲸􏳃􏳚􏲗􏲠屬性,父類中的屬性,每一個在棧中的控制器都能通過此屬性,獲取自己所在的􏳂􏰠􏰮UINavigationController對象􏰩􏱁􏳪 

出棧和入棧的方法

例如:我們首先創建一個根視圖控制器RootViewController和詳情視圖控制器DetailViewController,同時在根視圖上添加一個button,當我們點擊button時通過響應其方法來實現視圖的切換,具體實現如下:

當我們進入DetailViewController時,同樣可以通過點擊詳情試圖上的按鈕在button的響應方法裡來實現視圖間的切換

 

 

常用的屬性有

 

 

UINavigationBar

navigationBar--導航條,iOS7以後默認是透明的,iOS7以前默認是不透明的。

navigationBar在透明情況下,與contentView會重合一部分區域

navigationBar在不透明情況,ContentView跟在navigationBar下面

navigationBar豎屏下默認高度44,橫屏下默認高度32

 

 自定義navigationBar

barTintColor // 設置導航條的顏色

setBackgroundImage:forBarMetrics://導航條加背景圖片

 

 

管理UINavigationItem

UINavigationBar處理能管理一組UINavigationItem

與UINavigationController相似,UINavigationBar也是以棧的方式管理一組UINavigationItem。提供push和pop操作item

每個視圖控制器都有一個navigationItem屬性,navigationItem中設置的做按鈕、右按鈕、標題等,會隨著控制器的顯示,也顯示到navigationBar上

UINavigationItem屬於MVC中的M,封裝了要顯示在UiNavigationBar上的數據

title: 標題

titleView :標題視圖

leftBarButtonItem :左按鈕

rightBarButtonItem :右按鈕

 

UIBarButtonItem

UIBarButtonItem屬於MVC的M,定義了UINavigationItem上按鈕的觸發事件,外觀等

-initWithBarButtonSystemItem:target:action:設置按鈕樣式及觸發事件
-initWithTiltle:style:target:action: 設置標題的觸發事件
-initWithImage:style:target:action:設置視圖的觸發事件
tintColor  設置tintColor可以影響添加在導航條上的系統樣式的按鈕的顏色

 

Copyright © Linux教程網 All Rights Reserved