得到了如下報錯:**Application tried to present a nil modal view controller on target**。我在運行的程序是,首先判斷條件是否滿足,啟動後修改初始化視圖控制器。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions
{
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"logged_in"]) {
ViewControllerOne *vc1 = [[ViewControllerOne alloc]init];
vc1=[self.storyboard instantiateViewControllerWithIdentifier: @"vc1"];
[self presentViewController:vc1 animated:YES completion:Nil];
} else {
ViewControllerTwo *vc2 = [[ViewControllerTwo alloc]init];
vc2=[self.storyboard instantiateViewControllerWithIdentifier: @"vc2"];
[self presentViewController:vc2 animated:YES completion:Nil];
}
// Override point for customization after application launch.
return YES;
}
如果是從storyboard中來創建控制器不需要先
ViewControllerOne *vc1 = [[ViewControllerOne alloc]init];
修改後的代碼如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController *rootVC;
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"logged_in"]) {
rootVC=[self.storyboard instantiateViewControllerWithIdentifier: @"vc1"];
} else {
rootVC=[self.storyboard instantiateViewControllerWithIdentifier: @"vc2"];
}
window.rootViewConroller=rootVC;
[self.window makeKeyAndVisible];
return YES;
}