版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】UIKit框架(11)導(dǎo)航控制器UINavigationController
介紹多控制器管理中非常重要的一個(gè)控制器UINavigationController它負(fù)責(zé)管理多個(gè)控制器,能夠輕松完成控制器間的切換如:iOS系統(tǒng)上的設(shè)置
父類是UIViewController,但其功能并非是管理view,而是管理多個(gè)控制器控制器棧式管理:
當(dāng)切換時(shí),將一個(gè)控制器入棧,當(dāng)返回時(shí),棧頂控制器出棧
當(dāng)前顯示的永遠(yuǎn)是棧頂控制器的view,棧結(jié)構(gòu)如下:@property(nonatomic,
copy)
NSArray
*viewControllers
//管理的所有控制器
@property(nonatomic,
readonly,
retain)
UIViewController
*topViewController
//當(dāng)前顯示的控制器代碼使用導(dǎo)航控制器導(dǎo)航控制器的創(chuàng)建:-
(instancetype)initWithRootViewController:(UIViewController
*)rootViewController
rootViewController參數(shù):根控制器,即管理的第一個(gè)頁(yè)面跳轉(zhuǎn)動(dòng)作:
使用導(dǎo)航控制器的pushViewController方法:-
(void)pushViewController:(UIViewController
*)viewController
animated:(BOOL)animated
也就是說(shuō),跳轉(zhuǎn)動(dòng)作的執(zhí)行者是導(dǎo)航控制器,而不是源控制器
源控制器可以通過(guò)它的屬性訪問(wèn)到導(dǎo)航控制器:@property(nonatomic,
readonly,
retain)
UINavigationController*navigationController
如一個(gè)跳轉(zhuǎn)動(dòng)作:AMViewController
*vc
=
[[AMViewControllerTwo
alloc]
init];
[self.navigationController
pushViewController:vc
animated:YES];
返回動(dòng)作:
非根控制器的導(dǎo)航欄上,都默認(rèn)有一個(gè)返回按鈕,點(diǎn)擊此按鈕能夠自動(dòng)返回
也可以通過(guò)代碼返回,導(dǎo)航控制器的方法:-
(UIViewController
*)popViewControllerAnimated:(BOOL)animated
//返回一個(gè)控制器
-
(NSArray
*)popToViewController:(UIViewController
*)viewController
animated:(BOOL)animated
//返回到指定控制器
-
(NSArray
*)popToRootViewControllerAnimated:(BOOL)animated
//返回到根控制器storyboard使用導(dǎo)航控制器
刪除storyboard默認(rèn)的控制器,添加UINavigationController,并設(shè)置為初始控制器。
添加一個(gè)控制器,連接導(dǎo)航控制器的rootviewcontroller屬性
控制器間的跳轉(zhuǎn)可以直接連線,選擇show
同樣支持自動(dòng)型Segue和手動(dòng)型Segue
控制器之間傳遞數(shù)據(jù)和modal方式切換一樣導(dǎo)航欄上按鈕的添加
導(dǎo)航欄上的按鈕類型是UIBarButtonItem
導(dǎo)航欄導(dǎo)航控制器除了管理多個(gè)控制器外,還有一個(gè)到導(dǎo)航欄,相關(guān)屬性:@property(nonatomic,
readonly)
UINavigationBar
*navigationBar
//導(dǎo)航欄
@property(nonatomic,
getter=isNavigationBarHidden)
BOOL
navigationBarHidden
//導(dǎo)航欄隱藏使能導(dǎo)航欄上的數(shù)據(jù)由UINavigationItem對(duì)象管理,其屬性如下:@property(nonatomic,
copy)
NSString
*title
//中間的標(biāo)題
@property(nonatomic,
retain)
UIView
*titleView
//中間的視圖
@property(nonatomic,
retain)
UIBarButtonItem
*backBarButtonItem
//左側(cè)的返回按鈕
@property(nonatomic,
retain)
UIBarButtonItem
*leftBarButtonItem
//左側(cè)自定義按鈕
@property(nonatomic,
copy)
NSArray
*leftBarButtonItems
@property(nonatomic,
retain)
UIBarButtonItem
*rightBarButtonItem
//右側(cè)自定義按鈕
@property(nonatomic,
copy)
NSArray
*rightBarButtonItems導(dǎo)航欄對(duì)象UINavigationBar管理顯示數(shù)據(jù)的方式和導(dǎo)航控制器管理多個(gè)控制器類似,也是用棧的結(jié)構(gòu):@property(nonatomic,
copy)
NSArray
*items
@property(nonatomic,
readonly,
retain)
UINavigationItem
*topItem但通常不直接使用導(dǎo)航欄對(duì)象來(lái)設(shè)置顯示的數(shù)據(jù)UIViewController包含一個(gè)navigationItem屬性:@property(nonatomic,
readonly,
retain)
UINavigationItem
*navigationItem
通過(guò)這個(gè)屬性,能夠直接設(shè)置當(dāng)前頁(yè)面的導(dǎo)航欄數(shù)據(jù)工具欄導(dǎo)航控制器還管理著一個(gè)工具欄,這個(gè)工具欄默認(rèn)是隱藏的@property(nonatomic,
readonly)
UIToolbar
*toolbar
-
(void)setToolbarHidden:(BOOL)hidden
animated:(BOOL)animated
@property(nonatomic,
getter=isToolbarHidden)
BOOL
toolbarHidde
工具欄UIToolBar管理方式導(dǎo)航欄UINavigationBar的管理方式類似UIViewController包含一個(gè)tabBarItem屬性:@property(nonatomic,
readonly,
retain)
UINavigationItem
*navigationItem
通過(guò)這個(gè)屬性,能夠直接設(shè)置當(dāng)前頁(yè)面的工具欄數(shù)據(jù)@property(nonatomic,
retain)
UITabBarItem
*tabBarItem導(dǎo)航控制器子類定義一個(gè)導(dǎo)航控制器子類的好處是:
讓項(xiàng)目中所有的導(dǎo)航控制器都遵循統(tǒng)一的一些行為,應(yīng)讓所有的導(dǎo)航控制器為自定義的UINavigationController的子類,在子類中設(shè)定這些統(tǒng)一的行為。UINavigationBar設(shè)置背景圖片
-
(void)setBackgroundImage:(UIImage
*)backgroundImage
forBarMetrics:(UIBarMetrics)barMetricsUINavigationBar設(shè)置文字屬性
@property(nonatomic,
copy)
NSDictionary
*titleTextAttributes一些控件遵循<UIAppearance>協(xié)議,通過(guò)協(xié)議中的appearance方法能夠返回全局對(duì)象+
(instancetype)appearance通過(guò)全局對(duì)象能夠設(shè)置一些全局的特征設(shè)置導(dǎo)航欄的tintColor[UINavigationBar
appearance].tintColor
=
[UIColor
whiteColor];設(shè)置導(dǎo)航欄按鈕的字體[UIBarButtonItem
appearance]
setTitleTextAttributes:attrDict
forStat
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人股權(quán)轉(zhuǎn)讓與股權(quán)激勵(lì)計(jì)劃合同4篇
- 2025年在線娛樂(lè)服務(wù)合同
- 2025年借殼上市銷售協(xié)議
- 2025年化工品供應(yīng)協(xié)議
- 2025年辦公用品采購(gòu)合同
- 2025年倉(cāng)庫(kù)租賃業(yè)務(wù)保密協(xié)議
- 2025年度互聯(lián)網(wǎng)數(shù)據(jù)中心(IDC)運(yùn)營(yíng)管理合同范本4篇
- 二零二五版智慧小區(qū)門禁系統(tǒng)采購(gòu)與維護(hù)協(xié)議4篇
- 二零二五年度二手船舶購(gòu)置協(xié)議材料船舶買賣3篇
- 2025版儲(chǔ)罐租賃及物聯(lián)網(wǎng)技術(shù)應(yīng)用合同3篇
- 餐廚垃圾收運(yùn)安全操作規(guī)范
- 皮膚內(nèi)科過(guò)敏反應(yīng)病例分析
- 電影《獅子王》的視聽語(yǔ)言解析
- 妊娠合并低鉀血癥護(hù)理查房
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計(jì)要效率
- 2024年中國(guó)航空發(fā)動(dòng)機(jī)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- 動(dòng)力管道設(shè)計(jì)手冊(cè)-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫(kù)Turtle詳解(含豐富示例)
評(píng)論
0/150
提交評(píng)論