【IOS 开发学习总结-OC-60】ipad应用开发的一些知识
ipad与iPhone上 管理有层次的工作流的不同
iPhone上:通过NavigationController,用户可以从上一层界面A到下一层界面B,当 B 处理完后,再返回 A。
ipad上:由于 ipad 屏幕比 iPhone 大的多,所以它就没有通过NavigationController来管理这种关系。——通常是在 iPad 的左边显示一个导航列表框,当单击左边的某个导航项时,该窗口的右边将会显示该导航对应的详情。——这就是 iPad 上的专用控件:UISplitVIewController.
UISplitVIewController——ipad 专用
iPad横向时
iPad 处于横向模式,UISplitVIewController的左侧会出现320px 的侧栏——常用于显示页面导航栏。右侧通常用于显示导航栏对应的详情。
iPad纵向时
UISplitVIewController的左侧的导航栏不再固定显示在左边,而是需要单击某个工具按钮来激活它。——这时,会有个浮动窗口(popover) 来显示导航栏。
图片出自:http://course.gdou.com/blog/Blog.pzs/archive/2011/11/8/10838.html
UISplitVIewController的用法
UISplitVIewController 只是用来管理左右2个 UIviewController,并没有多大额外作用。
使用UISplitVIewController的大致步骤:
1. 创建UISplitVIewController对象,
2. 通过vIewControllers 属性为UISplitVIewController设置左右2个vIewController。
3. 为UISplitVIewController设置 delegate,该属性必须实现UISplitViewControllerDelegate协议的对象。该对象负责额处理UISplitVIewController左侧导航栏的显示和隐藏事件。
UISplitViewControllerDelegate协议中的方法。
@protocol UISplitViewControllerDelegate
@optional
// This method allows a client to update any bar button items etc.
- (void)splitViewController:(UISplitViewController *)svc willChangeToDisplayMode:(UISplitViewControllerDisplayMode)displayMode NS_AVAILABLE_IOS(8_0);
//将改变显示模式时
- (UISplitViewControllerDisplayMode)targetDisplayModeForActionInSplitViewController:(UISplitViewController *)svc NS_AVAILABLE_IOS(8_0);
//Asks the delegate to provide the display mode to apply when a split view controller action occurs.
// Override this method to customize the behavior of `showViewController:` on a split view controller. Return YES to indicate that you've handled
// the action yourself; return NO to cause the default behavior to be executed.
- (BOOL)splitViewController:(UISplitViewController *)splitViewController showViewController:(UIViewController *)vc sender:(nullable id)sender NS_AVAILABLE_IOS(8_0);
- (BOOL)splitViewController:(UISplitViewController *)splitViewController showDetailViewController:(UIViewController *)vc sender:(nullable id)sender NS_AVAILABLE_IOS(8_0);
//是否显示详细视图控制器
// Return the view controller which is to become the primary view controller after `splitViewController` is collapsed due to a transition to
// the horizontally-compact size class. If you return `nil`, then the argument will perform its default behavior (i.e. to use its cu