版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
控制器管理iOS學(xué)院掌握控制器以及view的多種創(chuàng)建方式UINavigationController的簡單使用:添加\移除子控制器UINavigationBar內(nèi)容的設(shè)置控制器的生命周期方法Segue的使用控制器之間數(shù)據(jù)的傳遞如何創(chuàng)建一個控制器控制器常見的創(chuàng)建方式有以下幾種通過storyboard創(chuàng)建直接創(chuàng)建HMViewController*hm
=
[[HMViewController
alloc]
init];指定xib文件來創(chuàng)建HMViewController*hm
=
[[HMViewController
alloc]
initWithNibName:@”HMViewController"bundle:nil];通過storyboard創(chuàng)建控制器先加載storyboard文件(Test是storyboard的文件名)UIStoryboard
*storyboard
=
[UIStoryboard
storyboardWithName:@"Test"
bundle:nil];接著初始化storyboard中的控制器初始化“初始控制器”(箭頭所指的控制器)HMViewController
*hm
=
[storyboard
instantiateInitialViewController];通過一個標(biāo)識初始化對應(yīng)的控制器HMViewController
*hm
=
[storyboard
instantiateViewControllerWithIdentifier:@”hm"];MJViewController的view的創(chuàng)建loadViewYES根據(jù)loadView的代碼實現(xiàn)去創(chuàng)建NOstoryboard根據(jù)storyboard的描述去創(chuàng)建YESNOHMViewController.xibnibName根據(jù)nibName對應(yīng)xib的描述去創(chuàng)建YESHMView.xibNOYES根據(jù)HMView.xib的描述去創(chuàng)建NOYES根據(jù)
HMViewController.xib的描述去創(chuàng)建NO創(chuàng)建一個空的view控制器view的延遲加載控制器的view是延遲加載的:用到時再加載可以用isViewLoaded方法判斷一個UIViewController的view是否已經(jīng)被加載控制器的view加載完畢就會調(diào)用viewDidLoad方法多控制器一個iOS的app很少只由一個控制器組成,除非這個app極其簡單當(dāng)app中有多個控制器的時候,我們就需要對這些控制器進行管理有多個view時,可以用一個大的view去管理1個或者多個小view控制器也是如此,用1個控制器去管理其他多個控制器比如,用一個控制器A去管理3個控制器B、C、D控制器A被稱為控制器B、C、D的“父控制器”控制器B、C、D的被稱為控制器A的“子控制器”為了便于管理控制器,iOS提供了2個比較特殊的控制器UINavigationControllerUITabBarControllerUINavigationController利用UINavigationController,可以輕松地管理多個控制器,輕松完成控制器之間的切換,典型例子就是系統(tǒng)自帶的“設(shè)置”應(yīng)用UINavigationController的簡單使用UINavigationController的使用步驟初始化UINavigationController設(shè)置UIWindow的rootViewController為UINavigationController根據(jù)具體情況,通過push方法添加對應(yīng)個數(shù)的子控制器UINavigationController的子控制器UINavigationController以棧的形式保存子控制器
@property(nonatomic,copy)NSArray
*viewControllers;@property(nonatomic,readonly)NSArray
*childViewControllers;使用push方法能將某個控制器壓入棧-
(void)pushViewController:(UIViewController
*)viewController
animated:(BOOL)animated;使用pop方法可以移除控制器將棧頂?shù)目刂破饕瞥?
(UIViewController
*)popViewControllerAnimated:(BOOL)animated;回到指定的子控制器-
(NSArray
*)popToViewController:(UIViewController
*)viewController
animated:(BOOL)animated;回到根控制器(棧底控制器)-
(NSArray
*)popToRootViewControllerAnimated:(BOOL)animated;UINavigationController的view結(jié)構(gòu)導(dǎo)航控制器的view棧頂控制器的view導(dǎo)航條如何修改導(dǎo)航欄的內(nèi)容導(dǎo)航欄的內(nèi)容由棧頂控制器的navigationItem屬性決定UINavigationItem有以下屬性影響著導(dǎo)航欄的內(nèi)容左上角的返回按鈕@property(nonatomic,retain)
UIBarButtonItem
*backBarButtonItem;中間的標(biāo)題視圖@property(nonatomic,retain)
UIView
*titleView;中間的標(biāo)題文字@property(nonatomic,copy)
NSString
*title;左上角的視圖@property(nonatomic,retain)
UIBarButtonItem
*leftBarButtonItem;UIBarButtonItem
*rightBarButtonItem
右上角的視圖@property(nonatomic,retain)
UIBarButtonItem
*rightBarButtonItem;什么是SegueStoryboard上每一根用來界面跳轉(zhuǎn)的線,都是一個UIStoryboardSegue對象(簡稱Segue)Segue的屬性每一個Segue對象,都有3個屬性唯一標(biāo)識@property
(nonatomic,
readonly)
NSString
*identifier;來源控制器@property
(nonatomic,
readonly)
id
sourceViewController;目標(biāo)控制器@property
(nonatomic,
readonly)
id
destinationViewController;Segue的類型根據(jù)Segue的執(zhí)行(跳轉(zhuǎn))時刻,Segue可以分為2大類型自動型:點擊某個控件后(比如按鈕),自動執(zhí)行Segue,自動完成界面跳轉(zhuǎn)手動型:需要通過寫代碼手動執(zhí)行Segue,才能完成界面跳轉(zhuǎn)自動型Segue按住Control鍵,直接從控件拖線到目標(biāo)控制器點擊“登錄”按鈕后,就會自動跳轉(zhuǎn)到右邊的控制器如果點擊某個控件后,不需要做任何判斷,一定要跳轉(zhuǎn)到下一個界面,建議使用“自動型Segue”手動型Segue按住Control鍵,從來源控制器拖線到目標(biāo)控制器手動型的Segue需要設(shè)置一個標(biāo)識(如右圖)在恰當(dāng)?shù)臅r刻,使用perform方法執(zhí)行對應(yīng)的Segue[self
performSegueWithIdentifier:@"login2contacts"
sender:nil];//Segue必須由來源控制器來執(zhí)行,也就是說,這個perform方法必須由來源控制器來調(diào)用如果點擊某個控件后,需要做一些判斷,也就是說:滿足一定條件后才跳轉(zhuǎn)到下一個界面,建議使用“手動型Segue”performSegueWithIdentifier:sender:利用performSegueWithIdentifier:方法可以執(zhí)行某個Segue,完成界面跳轉(zhuǎn)接下來研究performSegueWithIdentifier:sender:方法的完整執(zhí)行過程[self
performSegueWithIdentifier:@“l(fā)ogin2contacts”
sender:nil];//這個self是來源控制器根據(jù)identifier去storyboard中找到對應(yīng)的線,新建UIStoryboardSegue對象設(shè)置Segue對象的sourceViewController(來源控制器)新建并且設(shè)置Segue對象的destinationViewController(目標(biāo)控制器)performSegueWithIdentifier:sender:2.
調(diào)用sourceViewController的下面方法,做一些跳轉(zhuǎn)前的準(zhǔn)備工作并且傳入創(chuàng)建好的Segue對象-
(void)prepareForSegue:(UIStoryboardSegue
*)segue
sender:(id)sender;//這個sender是當(dāng)初performSegueWithIdentifier:sender:中傳入的sender調(diào)用Segue對象的-(void)perform;方法開始執(zhí)行界面跳轉(zhuǎn)操作取得sourceViewController所在的UINavigationController調(diào)用UINavigationController的push方法將destinationViewController壓入棧中,完成跳轉(zhuǎn)Sender參數(shù)的傳遞[self
performSegueWithIdentifier:@“l(fā)ogin2contacts”
sender:@“jack”];-
(void)prepareForSegue:(UIStoryboardSegue
*)segue
sender:(id)sender;控制器的數(shù)據(jù)傳遞控制器之間的數(shù)據(jù)傳遞主要有2種情況:順傳和逆?zhèn)黜槀骺刂破鞯奶D(zhuǎn)方向:A
C數(shù)據(jù)的傳遞方向
:A
C數(shù)據(jù)的傳遞方式
:
在A的prepareForSegue:sender:方法中根據(jù)segue參數(shù)取得destinationViewController,
也就是控制器C,
直接給控制器C傳遞數(shù)據(jù)(要在C的viewDidLoad方法中取得數(shù)據(jù),來賦值給界面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國靜音卷門數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國線條裝飾制品數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國后保險杠面罩總成數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國光速測量儀數(shù)據(jù)監(jiān)測研究報告
- 2025年中國電子變壓器專用絕緣樹脂市場調(diào)查研究報告
- 2025年中國水溶性辣椒紅色素市場調(diào)查研究報告
- 二零二五年度車庫車位租賃與共享充電協(xié)議4篇
- 二零二五年度車輛抵押給個人租賃融資協(xié)議
- 二零二四年度醫(yī)院退休醫(yī)生定期門診合作協(xié)議3篇
- 二零二五年度內(nèi)部股權(quán)重組與公司發(fā)展目標(biāo)協(xié)議
- 開展課外讀物負面清單管理的具體實施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動力學(xué)課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測試與裝調(diào)》電子教案
- 客戶分級管理(標(biāo)準(zhǔn)版)課件
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 固定資產(chǎn)盤點報告醫(yī)院版
評論
0/150
提交評論