【IOS】分隔视图控制器 (UISplitViewController)
2016-02-05 15:19
525 查看
转自:http://www.cnblogs.com/wayne23/p/3596814.html
这种控制器只能用于iPad,它可以在iPad屏幕中显示两个不同的场景:在横向模式下,左边显示一个表,供用户选择;用户选择表中的元素后,详细视图将显示该元素的详细信息。如果iPad被旋转到纵向模式,表将消失,而详细视图将填满整个屏幕;要进行导航,用户可触摸一个工具栏按钮,这将显示一个包含表的弹出框。
默认情况下,UISplitViewController的一端连接到一个受导航控制器(UINavigationController)管理的表视图(UITableViewController),这代表主场景;另一端连接到一个普通视图控制器(UIViewController),这代表详细场景。
可以将主场景和详细场景替换为新的控制器,只需要删除默认的控制器,然后按住Control键,并从分割视图控制器对象拖曳到新的主场景或详细场景,再在Xcode提示时选择Relationship - masterViewController或Relationship - detailViewController。
主场景和详细场景可以通过分割视图控制器互相访问,属性splitViewController包含一个名为viewControllers的数组。通过使用NSArray的方法lastObject,可获取该数组的最后一个元素(详细信息视图)。通过调用方法objectAtIndex,并将索引0传递给它,可获取该数组的第一个元素(主视图)。这样,两个视图控制器就可交换信息了。
主视图控制器可使用如下代码获取详细视图控制器:
UISplitViewController *
splitViewController = (UISplitViewController*) self.window.rootViewController; // 用于获取UISplitViewController
实例
[self.splitViewController.viewControllers lastObject] // splitViewController.viewControllers 是获取UISplitViewController
的 viewControllers 数组,它总是包含两个视图控制器:一个用于左边栏,一个用于右边栏。lastObject 用于获取数组的最后一个对象,即右边栏(详细视图控制器)
注:如果splitviewcontroller
连的是navigationcontroller,还需要通过 [self.splitViewController.viewControllers lastObject].topViewController 来获取详细视图控制器
而详细视图控制器可使用如下代码获取主视图控制器:
[self.splitViewController.viewControllers objectAtIndex:0]
这种控制器只能用于iPad,它可以在iPad屏幕中显示两个不同的场景:在横向模式下,左边显示一个表,供用户选择;用户选择表中的元素后,详细视图将显示该元素的详细信息。如果iPad被旋转到纵向模式,表将消失,而详细视图将填满整个屏幕;要进行导航,用户可触摸一个工具栏按钮,这将显示一个包含表的弹出框。
默认情况下,UISplitViewController的一端连接到一个受导航控制器(UINavigationController)管理的表视图(UITableViewController),这代表主场景;另一端连接到一个普通视图控制器(UIViewController),这代表详细场景。
可以将主场景和详细场景替换为新的控制器,只需要删除默认的控制器,然后按住Control键,并从分割视图控制器对象拖曳到新的主场景或详细场景,再在Xcode提示时选择Relationship - masterViewController或Relationship - detailViewController。
主场景和详细场景可以通过分割视图控制器互相访问,属性splitViewController包含一个名为viewControllers的数组。通过使用NSArray的方法lastObject,可获取该数组的最后一个元素(详细信息视图)。通过调用方法objectAtIndex,并将索引0传递给它,可获取该数组的第一个元素(主视图)。这样,两个视图控制器就可交换信息了。
主视图控制器可使用如下代码获取详细视图控制器:
UISplitViewController *
splitViewController = (UISplitViewController*) self.window.rootViewController; // 用于获取UISplitViewController
实例
[self.splitViewController.viewControllers lastObject] // splitViewController.viewControllers 是获取UISplitViewController
的 viewControllers 数组,它总是包含两个视图控制器:一个用于左边栏,一个用于右边栏。lastObject 用于获取数组的最后一个对象,即右边栏(详细视图控制器)
注:如果splitviewcontroller
连的是navigationcontroller,还需要通过 [self.splitViewController.viewControllers lastObject].topViewController 来获取详细视图控制器
而详细视图控制器可使用如下代码获取主视图控制器:
[self.splitViewController.viewControllers objectAtIndex:0]
相关文章推荐
- 封装实现UIButton左文字右图片
- 用Method Swizzling来避免数组越界与可变字典value值为nil造成的程序崩溃
- 基于脚本的动画的计时控制(“requestAnimationFrame”)(转)
- Error:Gradle version 2.2 is required. Current version is 1.12
- ExAcquireResourceExclusiveLite routine
- 自己定义UITabBarController
- Oc-语句总结(5)-NSnumber/NSvalue/NSDate
- 时间选择器 UIDatePicker 简单的创建方法
- ExAcquireResourceSharedLite routine
- Zoho Recruit -求职者审批表
- Solr DocValues详解
- iOS7系统中的坑——UITableViewCellScrollView
- 使用Hibernate时出现“could not execute query”异常
- iOS开发——UILabel自适应较多的文本
- iOS9 升级后UIAlertController的简单使用
- iOS之UIView加边框及边框颜色
- 移动开发中使用Onsen UI的笔记
- iOS UIWeb与JS之间的交互
- DICOM:DICOM开源库多线程分析之“ThreadPoolQueue in fo-dicom”
- iOS开发技巧之扩展UIColor,支持十六进制颜色设置