參考的鏈接:
http://nshipster.cn/uisplitviewcontroller/
http://coding.tabasoft.it/ios/the-new-uisplitviewcontroller/
iPhone剛打開時(shí)逞盆,只顯示detail澈蟆,如果要讓它先顯示master别威,需要實(shí)現(xiàn)UISplitViewControllerDelegate的方法
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? self.splitViewController.delegate = self;
}
- (BOOL)splitViewController:(UISplitViewController *)splitViewController collapseSecondaryViewController:(UIViewController *)secondaryViewController ontoPrimaryViewController:(UIViewController *)primaryViewController {
? ? return YES;
}
iPad Portrait剛啟動(dòng)時(shí)计维,只顯示detail,需要向右滑動(dòng)才能顯示master
沒有任何提示相當(dāng)不友好,可以在導(dǎo)航欄上加上一個(gè)返回的按鈕,UISplitViewController 有一個(gè) displayModeButtonItem忠寻,可以被添加到導(dǎo)航欄:
self.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem;
self.navigationItem.leftItemsSupplementBackButton = YES;
當(dāng)SplitViewController折疊只顯示master時(shí)(iPhone),它的viewControllers只有一個(gè)master存和,用viewControllers[1]來獲取detail會(huì)越界
在ios8以前奕剃,我們顯示一個(gè)新的detail的VC實(shí)在這樣做的
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)
最大的區(qū)別在于捐腿,在ios8我們需要實(shí)例化一個(gè)全新的detail VC纵朋,而不是簡(jiǎn)單地替換當(dāng)前的detail VC。