iOS开发学习笔记——导航控制器1(UINavigationController)
来源:互联网 发布:cardboard软件怎么使用 编辑:程序博客网 时间:2024/05/17 02:31
导航控制器了解与添加
官网文档:UINavigationControllerClass Reference
一、 控制器简介
1、 内容控制器(Content ViewController):主要显示内容,如视图控制器、表格控制器、集合视图控制器等。
2、 容器控制器(Container ViewController):主要容纳其他内容类控制器,主要进行控制器之间的切换,如:导航控制器、工具栏控制器。
二、 导航控制器使用(UINavigationController)
1、 使用原则类似”栈”的先进后出规则,Push入栈,Pop出栈,总显示最后操作的那个控制器,出栈之后的视图控制器会被销毁(即调用了dealloc方法)。
2、 【添加导航栏】 实例化导航控制器时,要为其添加rootViewController,一般可以使用在IB中添加(选择视图控制器,点击屏幕工具栏上方的edictor->enbed In选项下可以选择嵌入导航控制器)
3、 导航控制器对象提供以下属性(所有子控制器->数组、栈顶控制器),当然,子控制器也可以获得自身的导航控制器属性。
三、 UINavigationControllerDelegate协议
主要有两个方法:
• navigationController(_:willShowViewController:animated:) /
• navigationController(_:didShowViewController:animated:)
•
当要改变显示的控制器内容或状态时使用
其他详情设置参考及方法调用:UINavigationController使用
四、导航控制器的添加
需要理解:
a.导航控制器的根控制器是具有导航栏的。
b.导航控制器是继承UIViewController的,而不是简单的一个控件,所以从没有导航栏的控制器跳转到有导航栏的控制器时,present的是导航控制器,而不是简单的视图控制器(会跳转到黑屏)
c.导航控制器的添加不同于导航控制器内的视图控制器的切换。
如果需要使用导航栏,那么就必须生成实例对象,有两种方法
1.在IB中的storyBoard中直接添加(简单快捷),选中需要添加的子控制器,如截图:
2.使用代码的方式添加
在一般目标视图控制器(当前视图没有导航栏,子视图需要导航栏)文件中添加类似如下的代码:
<pre name="code" class="objc"> //创建一个导航控制器的对象
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:VC]; nav.navigationBar.backgroundColor = [UIColor redColor]; [self presentViewController:nav animated:YES completion:^{ NSLog(@"观察跳转");//特别注意:presentController的参数必须为导航栏控制器,不能为已经添加导航栏的视图控制器,否则会出错。 }];
根视图就使用导航控制器中写下如下代码:
//代码添加导航栏 let VC = ViewController() let nav = UINavigationController(rootViewController: VC) window?.rootViewController = nav //注意这个时候不是viewController的实例对像。如果这里添加的是VC则会是黑色的 self.window?.backgroundColor = UIColor.whiteColor() //设置背景色,否则是黑色的
学习内容参考:宏创学院»UINavigationController介绍:1-导航控制器简介
- iOS开发学习笔记——导航控制器1(UINavigationController)
- iOS学习笔记-048.UINavigationController——导航控制器
- iOS 开发学习 导航控制器(UINavigationController)
- iOS开发UINavigation系列四——导航控制器UINavigationController
- iOS开发UINavigation——导航控制器UINavigationController
- iOS开发 — (UINaVigationController)导航控制器,界面传值
- iOS开发:UINavigationController导航控制器
- IOS学习之——UINavigationController 导航控制器
- IOS学习之——导航控制器 UINavigationController
- iPhone开发之导航控制器的预习——UINavigationController导航控制器的学习
- IOS开发学习笔记(导航控制器,视图控制器,模态)
- iOS导航控制器学习笔记(1)
- iOS导航控制器——UINavigationController使用详解
- iOS导航控制器——UINavigationController使用详解
- IOS中的UINavigationController(导航控制器)
- Snail—UI学习之导航视图控制器UINavigationController(系统)
- UINavigationController(导航控制器)
- UINavigationController ( 导航控制器 )
- linux 2.6 中断,异常
- JavaScript 定时器
- 观察者模式
- HWOJ 字符串最后一个单词长度
- HD 1253 胜利大逃亡(bfs)
- iOS开发学习笔记——导航控制器1(UINavigationController)
- Its width is W and height is H. As a result, if the font size of characters is S then it can only sh
- 如何判断两个数字的奇偶性是否相同。
- hashmap
- CodeForces-659A-Round House
- hdu 3986 Harry Potter and the Final Battle 最短路spfa+枚举
- 《论文排版札记》part 2 作者简介、基金号、横线设置
- 文件服务器与web服务器分离的的
- 数据结构:栈