版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 22500-2024动植物油脂紫外吸光度的测定
- GB/T 44771-2024压水堆核燃料组件制造工艺和产品合格性鉴定要求
- 2024年度传单派发与宣传活动合同
- 2024年度电影发行与放映权转让合同
- 2024年度汽车租赁公司汽车停车位租赁合同协议书3篇
- 六年级科学上册 全一册教案 (新版)教科版
- 2024年度股权转让合同股权结构变更
- 2024年度租赁服务合同租赁物、租赁期限及租金支付协议
- 《统计热力学基础》课件
- 2024年度医疗设备代售合同
- 肌松药合理应用专家共识
- 应用文写作证明信课件
- 伤寒论讲义课件
- 教科版科学二年级上册教师用书(PDF版)
- 工程量漏项报告申请书800字(3篇)
- 数字化城市管理系统教学课件
- 古代工笔人物画课件
- 四年级上册数学课件-7.1 整数四则混合运算丨苏教版 (共17张PPT)
- 煤层气井采出水处理规范征求意见稿山西省省级地
- 年产100万米预应力混凝土管桩生产项目可行性研究报告
- 计算机应用基础教案实训课教案
评论
0/150
提交评论