根据官方文档,UISplitViewController只能作为rootViewController,不能通过segue实现跳转,也不能在navigationController导航状态下push,replace,只能popover。(同时masterViewController的宽度也不能修改)现在要实现从一个viewController跳转到splitViewController,例如先出现一个登录窗口验证后再弹出splitViewController可以通过修改window的rootViewController实现。
storyboard里有两个viewController,一个是开始的viewController,点击上面的ENTER按钮后跳转到splitViewController
先设置好两个ViewController的identifier,点击viewController在属性栏设置,我的前一个viewController的identifier是ViewController,splitViewController是SplitViewController
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@property(nonatomic,strong)UIWindow *window;
-(IBAction)toSplitController:(id)sender;
@end
在 ViewController.m中添加函数
-(IBAction)toSplitController:(id)sender{
UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UISplitViewController *splitViewController = [story instantiateViewControllerWithIdentifier:@"SplitViewController"];//从story
board中取得相应的ViewController
[self.view.window setRootViewController:splitViewController];//设置rootViewController
}
如果要从splitViewController跳回到前一个viewController设置方法同理。