MGSplitViewController不作为根

我需要使用MGSplitViewController,因为它能够以纵向模式显示主视图控制器。 但是,在显示我的分割视图之前,我需要显示一个login屏幕。 不幸的是,我无法在启动时全屏popup视图控制器,因为我调用了其他一些方法! 下面是我的应用程序委托和详细视图控制器代码。 请注意,select器方法阻止我打开一个模式!

AppDelegate.h是使用MGSplitViewControllerAppDelegate.h构造的

// RandomStringAppDelegate.m - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after app launch. // Set the split view controller as the window's root view controller and display. //self.window.rootViewController = self.splitViewController; // Add the split view controller's view to the window and display. NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; [prefs setObject:@"YES" forKey:@"FirstRun"]; [window addSubview:splitViewController.view]; [window makeKeyAndVisible]; [rootViewController performSelector:@selector(selectFirstRow) withObject:nil afterDelay:0]; [splitViewController performSelector:@selector(toggleMasterView:) withObject:nil afterDelay:0]; [detailViewController performSelector:@selector(configureView) withObject:nil afterDelay:0]; //[self.window makeKeyAndVisible]; return YES; } 

一切都是标准的! 不幸的是,我不能在这里popup模式,因为它在我身上崩溃!

你可以从MGSplitViewController派生一个类,并在viewDidLoad或viewWillAppear:处理你的东西。 所以你可以跟踪你的首选项“FirstRun”,如果它被设置为“YES”,你可以隐藏你的分割视图,而你在viewDidLoad中启动你的模态。 我认为这可以做到这一点。 顺便说一句,你在上面的代码中缺less一个[prefs同步],所以你不会有回写的密钥。