IOS开发UI篇导航控制器属性和基本使用_第1页
IOS开发UI篇导航控制器属性和基本使用_第2页
IOS开发UI篇导航控制器属性和基本使用_第3页
IOS开发UI篇导航控制器属性和基本使用_第4页
IOS开发UI篇导航控制器属性和基本使用_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

IOS开发UI篇导航控制器属性和基本使用IOS开发UI篇导航控制器属性和基本使用作者:文顶顶公布日期:2014-06-0520:01:55我来说两句(0)0Tag标签:控制器属性IOS开发UI篇—导航控制器属性和基本使用一、导航控制器的一些属性和基本使用1.把子控制器增添到导航控制器中的四种方法1)1.创立一个导航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.设置导航控制器为window的根视图self.window.rootViewController=nav;3.增添YYOneViewController*one=[[YYOneViewControlleralloc]init];[navpushViewController:oneanimated:YES];2)1.创立一个导航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.设置导航控制器为window的根视图self.window.rootViewController=nav;3.增添YYOneViewController*one=[[YYOneViewControlleralloc]init];[navaddChildViewController:one];3)1.创立一个导航控制器UINavigationController*nav=[[UINavigationControlleralloc]init];2.设置导航控制器为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.当前子控制器界面导航栏的标题以及对应返回标题的设置self.navigationItem.title=@"第一个界面";self.navigationItem.backBarButtonItem=[[UIBarButtonItemalloc]initWithTitle:@"返回一"style:UIBarButtonItemStylePlaintarget:nilaction:nil];3.给导航栏增添按钮说明:可增添一个,也可以增添多个(数组)增添导航栏左侧的按钮(增添一个相机图标的按钮),会盖掉返回self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nilaction:nil];4.界面跳转跳转到第二个界面(当前为第三个,移除当前栈顶的控制器)[self.navigationControllerpopViewControllerAnimated:YES];移除办理栈底控制器以外的全部控制器[self.navigationControllerpopToRootViewControllerAnimated:YES];只需传入栈中的某一个控制器,就会跳转到指定控制器[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年应用程序启动达成即会调用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.创立一个导航控制器27.27UINavigationController*nav=[[UINavigationControlleralloc]init];28.28//2.设置导航控制器为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跳转到第二个界面15.15@end19.1920.20@implementation(IBAction)jump2two:(id)sender{24.24//1.创立第二个子控制器25.25YYTwoViewController//2.把子控制器增添到导航控制器中

28.28

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

29.29

//只需当前控制器是导航控制器的子控制器,那么就可以经过该属性直接获得到当前控制器所在的导航控制器

30.30[self.navigationControllerpushViewController:twoanimated:YES];31.31}32.3233.33-(void)viewDidLoad34.34{35.35[superviewDidLoad];36.36//控制当前控制器对应的导航条显示的内容37.37self.navigationItem.title=@"第一个界面";38.38//更正返回按钮显示的内容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-跳转到第三个子控制器19.19-(IBAction)jump2Three:(id)sender{20.20//1.创立第三个子控制器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//增添导航栏左侧的按钮(增添一个相机图标的按钮),会盖掉返回31.31//self.navigationItem.leftBarButtonItem=[[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCameratarget:nilaction:nil];32.32

33.33//为导航栏在右侧增添多个按钮

34.34

//创立两个按钮

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//设置对应的导航条的返回(第三个界面导航条的返回)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//跳转到第二个界面(移除当前栈顶的控制器(IBAction)jump2root:(id)sender{29.29//移除办理栈底控制器以外的全部控制器30.30[self.navigationController//只需传入栈中的某一个控制器,就会跳转到指定控制器33.33//不可以这样,没增添到导航控制器YYTwoViewController*two=[[YYTwoViewControlleralloc]init];34.34//[self.navigationControllerpopToViewController:<#(UIViewController*)#>animated:<#(BOOL)#>];35.35}36.36@end实现成效:三、导航控制器经过栈来管理子控制器表示图:说明:导航控制器是经过栈的形式来管理子控制器的(先进后出)显示在导航控制器上得view永久是栈顶控制器的view一个导航控制器只有一个导航条,也就是说全部的自控制器公用一个导航条。四、增补在代理方法中,打印当前window下边的全部子控件,并经过xml文件来保存,代码以下。viewsourceprint?01.//应用程序获得焦点(代表着可以和用户交互)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的全部层级结构18.*19.*@paramview需要获得层级结构的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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论