版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IOS开发UI篇导航控制器属性和基本使用一、导航控制器的一些属性和基本使用1.把子控制器添加到导航控制器中的四种方法(1) 1.创建一个导航控制器 UINavigationController *nav=UINavigationControllerallocinit;2.设置导航控制器为window的根视图 self.window.rootViewController=nav;3.添加 YYOneViewController *one = YYOneVie
2、wController alloc init; nav pushViewController:one animated:YES;(2) 1.创建一个导航控制器 UINavigationController *nav=UINavigationControllerallocinit; 2.设置导航控制器为window的根视图 self.window.rootViewController=nav; 3.添加YYOneVie
3、wController *one = YYOneViewController alloc init; nav addChildViewController:one;(3) 1.创建一个导航控制器 UINavigationController *nav=UINavigationControllerallocinit; 2.设置导航控制器为window的根视图 self.window.rootViewController=nav;3.添加YYOneVie
4、wController *one = YYOneViewController alloc init;nav.viewControllers=one;(添加到导航控制器的栈中)说明:nav.viewControllers;= nav.childViewControllers;注意该属性是只读的,因此不能像下面这样写。nav.childViewControllers = one;(4)最常用的方法 YYOneViewController *one=YYOneViewController allocinit; UINavigationC
5、ontroller *nav=UINavigationController allocinitWithRootViewController:one; 2.当前子控制器界面导航栏的标题以及对应返回标题的设置 self.navigationItem.title="第一个界面" self.navigationItem.backBarButtonItem=UIBarButtonItemallocinitWithTitle:"返回一"style:UIBarButtonItemStyl
6、ePlain target:nilaction:nil;3.给导航栏添加按钮说明:可添加一个,也可以添加多个(数组) 添加导航栏左边的按钮(添加一个相机图标的按钮),会盖掉返回 self.navigationItem.leftBarButtonItem=UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil;4.界面跳转跳转到第二个界面(当前为第三个,移除当前栈顶的控制器) self.navigati
7、onControllerpopViewControllerAnimated:YES; 移除处理栈底控制器之外的所有控制器 self.navigationControllerpopToRootViewControllerAnimated:YES;只要传入栈中的某一个控制器,就会跳转到指定控制器 self.navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>二、代码示例YYAppDelegate.m文件 1 / 2 / YYA
8、ppDelegate.m 3 / 01-导航控制器的使用1 4 / 5 / Created by apple on 14-6-4. 6 / Copyright (c) 2014年 itcase. All rights reserved. 7 / 8 9 #import "YYAppDelegate.h"10 #import "YYOneViewController.h"11 12 implementation YYAppDelegate13 14 /应用程序启动完毕即会调用15 - (BOOL)application:(UIApplication *)a
9、pplication didFinishLaunchingWithOptions:(NSDictionary *)launchOptions16 17 self.window = UIWindow alloc initWithFrame:UIScreen mainScreen bounds;18 self.window.backgroundColor = UIColor whiteColor;19 20 21 /3.添加子控制器到导航控制器中22 /第一种也是最常用的一种23 / YYOneViewController *one=YYOneViewController allocinit;24
10、 / UINavigationController *nav=UINavigationController allocinitWithRootViewController:one;25 26 /1.创建一个导航控制器27 UINavigationController *nav=UINavigationController allocinit;28 /2.设置导航控制器为window的根视图29 self.window.rootViewController=nav;30 31 /第二种32 YYOneViewController *one = YYOneViewController alloc
11、init;33 nav pushViewController:one animated:YES;34 35 /第三种36 / nav addChildViewController:one;37 / 第四种(添加到导航控制器的栈中)38 / nav.viewControllers=one;39 40 / 导航控制器的栈41 / nav.viewControllers;= nav.childViewControllers;42 / 注意该属性是只读的,因此不能像下面这样写43 / nav.childViewControllers = one;44 45 46 self.window makeKey
12、AndVisible;47 return YES;48 49 50 endYYOneViewController.m文件 1 / 2 / YYOneViewController.m 3 / 01-导航控制器的使用1 4 / 5 / Created by apple on 14-6-4. 6 / Copyright (c) 2014年 itcase. All rights reserved. 7 / 8 9 #import "YYOneViewController.h"10 #import "YYTwoViewController.h"11 12 inte
13、rface YYOneViewController ()13 /*14 跳转到第二个界面15 */16 - (IBAction)jump2two:(id)sender;17 18 end19 20 implementation YYOneViewController21 22 23 - (IBAction)jump2two:(id)sender 24 /1.创建第二个子控制器25 YYTwoViewController *two=YYTwoViewController allocinit;26 27 /2.把子控制器添加到导航控制器中28 /有什么办法能够拿到导航控制器?29 /只要当前控制器
14、是导航控制器的子控制器,那么就可以通过该属性直接获取到当前控制器所在的导航控制器30 self.navigationController pushViewController:two animated:YES;31 32 33 -(void)viewDidLoad34 35 super viewDidLoad;36 /控制当前控制器对应的导航条显示的内容37 self.navigationItem.title="第一个界面"38 /修改返回按钮显示的内容39 self.navigationItem.backBarButtonItem=UIBarButtonItem allo
15、cinitWithTitle:"返回一" style:UIBarButtonItemStylePlain target:nil action:nil;40 41 end YYTwoViewController.m文件 1 / 2 / YYTwoViewController.m 3 / 01-导航控制器的使用1 4 / 5 / Created by apple on 14-6-4. 6 / Copyright (c) 2014年 itcase. All rights reserved. 7 / 8 9 #import "YYTwoViewControlle
16、r.h"10 #import "YYThreeViewController.h"11 interface YYTwoViewController ()12 - (IBAction)jump2Three:(id)sender;13 14 end15 16 implementation YYTwoViewController17 18 /跳转到第三个子控制器19 - (IBAction)jump2Three:(id)sender 20 /1.创建第三个子控制器21 YYThreeViewController *three=YYThreeViewController a
17、llocinit;22 /2.将子控制器添加到导航控制器中23 self.navigationController pushViewController:three animated:YES;24 25 26 -(void)viewDidLoad27 28 super viewDidLoad;29 /给导航栏添加按钮30 /添加导航栏左边的按钮(添加一个相机图标的按钮),会盖掉返回31 / self.navigationItem.leftBarButtonItem=UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSyste
18、mItemCamera target:nil action:nil;32 33 /为导航栏在右边添加多个按钮34 /创建两个按钮35 UIBarButtonItem *a=UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil;36 UIBarButtonItem *b=UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemReply target:nil action:n
19、il;37 UIBarButtonItem *c=UIBarButtonItem allocinitWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:nil action:nil;38 self.navigationItem.rightBarButtonItems=a,b,c;39 40 /设置对应的导航条的返回(第三个界面导航条的返回)41 self.navigationItem.backBarButtonItem=UIBarButtonItem allocinitWithTitle:"返回" style
20、:UIBarButtonItemStyleBordered target:nil action:nil;42 43 endYYThreeViewController.m文件 1 / 2 / YYThreeViewController.m 3 / 01-导航控制器的使用1 4 / 5 / Created by apple on 14-6-4. 6 / Copyright (c) 2014年 itcase. All rights reserved. 7 / 8 9 #import "YYThreeViewController.h"10 #import "YYTwoVi
21、ewController.h"11 12 interface YYThreeViewController ()13 /返回到第二个控制器页面14 - (IBAction)jump2two:(id)sender;15 /返回到第一个控制器页面16 - (IBAction)jump2root:(id)sender;17 18 end19 20 implementation YYThreeViewController21 22 23 - (IBAction)jump2two:(id)sender 24 /跳转到第二个界面(移除当前栈顶的控制器)25 self.navigationContr
22、oller popViewControllerAnimated:YES;26 27 28 - (IBAction)jump2root:(id)sender 29 /移除处理栈底控制器之外的所有控制器30 self.navigationController popToRootViewControllerAnimated:YES;31 32 / 只要传入栈中的某一个控制器,就会跳转到指定控制器33 /不能这样,没添加到导航控制器YYTwoViewController *two = YYTwoViewController alloc init;34 /self.navigationControlle
23、r popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>35 36 end实现效果: 三、导航控制器通过栈来管理子控制器示意图:说明:导航控制器是通过栈的形式来管理子控制器的(先进后出)显示在导航控制器上得view永远是栈顶控制器的view一个导航控制器只有一个导航条,也就是说所有的自控制器公用一个导航条。 四、补充在代理方法中,打印当前window下面的所有子控件,并通过xml文件来保存,代码如下。/ 应用程序获取焦点(代
24、表着可以和用户交互)- (void)applicationDidBecomeActive:(UIApplication *)application NSLog("applicationDidBecomeActive"); UINavigationController *nav = (UINavigationController *)self.window.rootViewController; UINavigationBar *bar = nav.navigationBar;/ NSLog("%", NSStringFromCGRect(bar.fram
25、e); NSString *str = self digView:self.window; str writeToFile:"/Users/apple/Desktop/ios6.xml" atomically:YES; /* * 返回传入veiw的所有层级结构 * * param view 需要获取层级结构的view * * return 字符串 */- (NSString *)digView:(UIView *)view if (view isKindOfClass:UITableViewCell class) return "" / 1.初始化 NSMutableString *xml = NSMutableString string;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度国际房地产投资合作协议3篇
- 二零二五年度存量房买卖合同房屋租赁及转租限制3篇
- 万吨软磁材料建议书可行性研究报告备案
- 2025版股东个人股权转让及公司业务拓展与投资协议3篇
- 装配式住宅产品建议书可行性研究报告备案
- 植物蛋白饮料建议书可行性研究报告备案
- 2025年度电商行业销售兼职人员服务合同3篇
- 二零二五年度企业战略合作框架协议范本3篇
- 二零二五年度大学宿舍楼物业管理与服务外包合同6篇
- 二零二五年度国家级实验室博士科研团队合作协议3篇
- 徐州市2023-2024学年九年级上学期期末道德与法治试卷(含答案解析)
- 农业信息化实现农业现代化的数字化转型
- 《义务教育道德与法治课程标准(2022年版)》
- 20以内退位减法口算练习题100题30套(共3000题)
- 调味品年终总结汇报
- 无人机遥感技术与应用
- 云南省昆明市呈贡区2023-2024学年九年级上学期期末数学试卷+
- 有趣的英语小知识讲座
- 2023年物探工程师年度总结及下一年计划
- 2024年拟攻读博士学位期间研究计划
- 4马克思主义宗教观
评论
0/150
提交评论