IOS開發(fā)UI篇導航控制器屬性和基本使用_第1頁
IOS開發(fā)UI篇導航控制器屬性和基本使用_第2頁
IOS開發(fā)UI篇導航控制器屬性和基本使用_第3頁
IOS開發(fā)UI篇導航控制器屬性和基本使用_第4頁
IOS開發(fā)UI篇導航控制器屬性和基本使用_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

IOS開發(fā)UI篇導航控制器屬性和基本使用IOS開發(fā)UI篇導航控制器屬性和基本使用作者:文頂頂公布日期:2014-06-0520:01:55我來說兩句(0)0Tag標簽:控制器屬性IOS開發(fā)UI篇—導航控制器屬性和基本使用一、導航控制器的一些屬性和基本使用1.把子控制器增添到導航控制器中的四種方法1)1.創(chuàng)立一個導航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.設(shè)置導航控制器為window的根視圖self.window.rootViewController=nav;3.增添YYOneViewController*one=[[YYOneViewControlleralloc]init];[navpushViewController:oneanimated:YES];2)1.創(chuàng)立一個導航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.設(shè)置導航控制器為window的根視圖self.window.rootViewController=nav;3.增添YYOneViewController*one=[[YYOneViewControlleralloc]init];[navaddChildViewController:one];3)1.創(chuàng)立一個導航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.設(shè)置導航控制器為window的根視圖self.window.rootViewController=nav;3.增添YYOneViewController*one=[[YYOneViewControlleralloc]init];nav.viewControllers=@[one];(增添到導航控制器的棧中)說明:nav.viewControllers;==nav.childViewControllers;注意該屬性是只讀的,所以不可以像下邊這樣寫。nav.childViewControllers=@[one];(4)最常用的方法YYOneViewController*one=[[YYOneViewControlleralloc]init];UINavigationController*nav=[[UINavigationControlleralloc]initWithRootViewController:one];2.當前子控制器界面導航欄的標題以及對應(yīng)返回標題的設(shè)置self.navigationItem.title=@"第一個界面";self.navigationItem.backBarButtonItem=[[UIBarButtonItemalloc]initWithTitle:@"返回一"style:UIBarButtonItemStylePlaintarget:nilaction:nil];3.給導航欄增添按鈕說明:可增添一個,也可以增添多個(數(shù)組)增添導航欄左側(cè)的按鈕(增添一個相機圖標的按鈕),會蓋掉返回self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nilaction:nil];4.界面跳轉(zhuǎn)跳轉(zhuǎn)到第二個界面(當前為第三個,移除當前棧頂?shù)目刂破?[self.navigationControllerpopViewControllerAnimated:YES];移除辦理棧底控制器以外的全部控制器[self.navigationControllerpopToRootViewControllerAnimated:YES];只需傳入棧中的某一個控制器,就會跳轉(zhuǎn)到指定控制器[self.navigationControllerpopToViewController:<#(UIViewController*)#>animated:<#(BOOL)#>];二、代碼示例YYAppDelegate.m文件viewsourceprint?01.1//02.2//導航控制器的使用104.4//05.5//Createdbyappleon

01-14-6-4.06.6//Copyright(c)2014年應(yīng)用程序啟動達成即會調(diào)用15.15-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions16.16{17.17self.window=[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];18.18self.window.backgroundColor=[UIColorwhiteColor];19.19增添子控制器到導航控制器中22.22//第一種也是最常用的一種23.23//YYOneViewController*one=[[YYOneViewControlleralloc]init];24.24//UINavigationController*nav=[[UINavigationControlleralloc]initWithRootViewController:one];25.2526.26//1.創(chuàng)立一個導航控制器27.27UINavigationController*nav=[[UINavigationControlleralloc]init];28.28//2.設(shè)置導航控制器為window的根視圖29.29self.window.rootViewController=nav;30.3031.31//第二種

32.32

YYOneViewController

*one=[[YYOneViewController

alloc]init];33.33

[navpushViewController:oneanimated:YES];34.34

35.35//第三種36.36//[navaddChildViewController:one];37.37//第四種(增添到導航控制器的棧中)38.38//nav.viewControllers=@[one];39.3940.40//導航控制器的棧41.41//nav.viewControllers;==nav.childViewControllers;42.42//注意該屬性是只讀的,所以不可以像下邊這樣寫43.43//nav.childViewControllers=@[one];44.4445.4546.46[self.windowmakeKeyAndVisible];47.47returnYES;48.48}49.4950.50@endYYOneViewController.m文件viewsourceprint?01.1//02.2//01-導航控制器的使用104.4//05.5//Createdbyappleon14-6-4.06.6//Copyright(c)2014年itcase.Allrightsreserved.07.7//08.809.9#import"YYOneViewController.h"10.10#import"YYTwoViewController.h"11.1112.12@interfaceYYOneViewController( )13.13/**14.14跳轉(zhuǎn)到第二個界面15.15@end19.1920.20@implementation(IBAction)jump2two:(id)sender{24.24//1.創(chuàng)立第二個子控制器25.25YYTwoViewController//2.把子控制器增添到導航控制器中

28.28

//有什么方法可以拿到導航控制器?

29.29

//只需當前控制器是導航控制器的子控制器,那么就可以經(jīng)過該屬性直接獲得到當前控制器所在的導航控制器

30.30[self.navigationControllerpushViewController:twoanimated:YES];31.31}32.3233.33-(void)viewDidLoad34.34{35.35[superviewDidLoad];36.36//控制當前控制器對應(yīng)的導航條顯示的內(nèi)容37.37self.navigationItem.title=@"第一個界面";38.38//更正返回按鈕顯示的內(nèi)容39.39self.navigationItem.backBarButtonItem=[[UIBarButtonItemalloc]initWithTitle:@"返回一"style:UIBarButtonItemStylePlaintarget:nilaction:nil];40.40}41.41@endYYTwoViewController.m文件viewsourceprint?01.1//02.2////01-導航控制器的使用104.4//05.5//Createdbyappleon14-6-4.06.6//Copyright(c)2014年itcase.Allrightsreserved.07.7//08.809.9#import"YYTwoViewController.h"10.10#import"YYThreeViewController.h"11.11@interfaceYYTwoViewController( )12.12-跳轉(zhuǎn)到第三個子控制器19.19-(IBAction)jump2Three:(id)sender{20.20//1.創(chuàng)立第三個子控制器21.21YYThreeViewController*three=[[YYThreeViewControlleralloc]init];22.22//2.將子控制器增添到導航控制器中23.23[self.navigationControllerpushViewController:threeanimated:YES];24.24}25.2526.26-(void)viewDidLoad27.27{28.28[superviewDidLoad];29.29//給導航欄增添按鈕30.30//增添導航欄左側(cè)的按鈕(增添一個相機圖標的按鈕),會蓋掉返回31.31//self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nilaction:nil];32.32

33.33//為導航欄在右側(cè)增添多個按鈕

34.34

//創(chuàng)立兩個按鈕

35.35UIBarButtonItem*a=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStoptarget:nilaction:nil];36.36UIBarButtonItem*b=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemReplytarget:nilaction:nil];37.37UIBarButtonItem*c=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nilaction:nil];38.38self.navigationItem.rightBarButtonItems=@[a,b,c];39.3940.40//設(shè)置對應(yīng)的導航條的返回(第三個界面導航條的返回)41.41self.navigationItem.backBarButtonItem=[[UIBarButtonItemalloc]initWithTitle:@"返回"style:UIBarButtonItemStyleBorderedtarget:nilaction:nil];42.42}43.43@endYYThreeViewController.m文件viewsourceprint?01.1//02.2//導航控制器的使用Copyright2014年itcase.Allrightsreserved.07.7//08.809.9#import"YYThreeViewController.h"10.10#import"YYTwoViewController.h"11.1112.12@interfaceYYThreeViewController( )13.13//返回到第二個控制器頁面14.14-(IBAction)jump2two:(id)sender;15.15//返回到第一個控制器頁面@end19.1920.20@implementation(IBAction)jump2two:(id)sender{24.24//跳轉(zhuǎn)到第二個界面(移除當前棧頂?shù)目刂破?IBAction)jump2root:(id)sender{29.29//移除辦理棧底控制器以外的全部控制器30.30[self.navigationController//只需傳入棧中的某一個控制器,就會跳轉(zhuǎn)到指定控制器33.33//不可以這樣,沒增添到導航控制器YYTwoViewController*two=[[YYTwoViewControlleralloc]init];34.34//[self.navigationControllerpopToViewController:<#(UIViewController*)#>animated:<#(BOOL)#>];35.35}36.36@end實現(xiàn)成效:三、導航控制器經(jīng)過棧來管理子控制器表示圖:說明:導航控制器是經(jīng)過棧的形式來管理子控制器的(先進后出)顯示在導航控制器上得view永久是棧頂控制器的view一個導航控制器只有一個導航條,也就是說全部的自控制器公用一個導航條。四、增補在代理方法中,打印當前window下邊的全部子控件,并經(jīng)過xml文件來保存,代碼以下。viewsourceprint?01.//應(yīng)用程序獲得焦點(代表著可以和用戶交互)02.-(void)applicationDidBecomeActive:(UIApplication*)application03.{04.NSLog(@"applicationDidBecomeActive");06.07.UINavigationController*nav=(UINavigationController*)self.window.rootViewController;08.UINavigationBar*bar=nav.navigationBar;09.//NSLog(@"%@",NSStringFromCGRect(bar.frame));10.11.NSString*str=[selfdigView:self.window];12.[strwriteToFile:@"/Users/apple/Desktop/ios6.xml"atomically:YES];13.14.}15.16./**17.*返回傳入veiw的全部層級結(jié)構(gòu)18.*19.*@paramview需要獲得層級結(jié)構(gòu)的view20.*21.*@return字符串22.*/23.-(NSString*)digView:(UIView*)view24.{25.if([viewisKindOfClass:[UITableViewCellclass]])return@"";26.//1.初始化27.NSMutableString*xml=[NSMutableStringstring];28.29.//2.標簽開頭30.[xmlappendFormat:@"<%@frame=\"%@\"",view.class,NSStringFromCGRect(view.frame)];31.if(!CGPointEqualToPoint(view.bounds.origin,CGPointZero)){32.[xmlappendFormat:@"bounds=\"%@\"",NSStringFromCGRect(view.bounds)];33.}34.35.if([viewisKindOfClass:[UIScrollViewclass]]){36.UIScrollView*scroll(UIScrollView*)view;

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論