程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-報錯:nil modal view controller

ios-報錯:nil modal view controller

編輯:編程綜合問答
報錯:nil modal view controller

得到了如下報錯:**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;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved