iPad和iPhone如何共用UISplitViewController

参考的链接:

http://nshipster.cn/uisplitviewcontroller/

http://coding.tabasoft.it/ios/the-new-uisplitviewcontroller/


iPhone刚打开时,只显示detail,如果要让它先显示master,需要实现UISplitViewControllerDelegate的方法


- (void)viewDidLoad {

    [super viewDidLoad];

    self.splitViewController.delegate = self;

}

- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {

    return YES;

}



iPad Portrait刚启动时,只显示detail,需要向右滑动才能显示master

没有任何提示相当不友好,可以在导航栏上加上一个返回的按钮,UISplitViewController 有一个 displayModeButtonItem,可以被添加到导航栏:


self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;

self.navigationItem.leftItemsSupplementBackButton = YES;



当SplitViewController折叠只显示master时(iPhone),它的viewControllers只有一个master,用viewControllers[1]来获取detail会越界

在ios8以前,我们显示一个新的detail的VC实在这样做的


PhotoViewController *photoVC = (PhotoViewController*)self.splitViewController.viewControllers[1];

photoVC.image = image;


在ios8以后,我们是这样做的


PhotoViewController *photoVC = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"photovc"];

self.showDetailViewController(photoVC, sender: self)


最大的区别在于,在ios8我们需要实例化一个全新的detail VC,而不是简单地替换当前的detail VC。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 7,618评论 2 50
  • 前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标...
    VincentHK阅读 10,795评论 3 44
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 8,986评论 2 4
  • iPad开发与iPhone开发的异同简介1. iPad开发与iPhone开发的异同2. QQ空间的分析3. 登录界...
    JonesCxy阅读 4,657评论 1 5
  • 大家好!我是炫腹团团长慧儿! 感谢班长、班主任给我开马甲线专题的机会。我定会知无不言言无不尽地分享给大家。...
    做自己的女王Vivian阅读 3,449评论 0 2

友情链接更多精彩内容