簡體   English   中英

為什么我要展示nil模態視圖控制器?

[英]why am I getting presenting nil modal view controller?

我收到此錯誤“應用程序嘗試在target上顯示一個nil模態視圖控制器。” 這是我擁有的代碼,如果條件滿足,我將嘗試進行設置,它將更改初始視圖控制器。

   - (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;
}

我使用的是,我認為您缺少UIWindow

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
    UIViewController *mainViewController = [storyboard instantiateInitialViewController];
    self.window.rootViewController = mainViewController;

    return YES;
}

然后,您可以替換:

[storyboard instantiateInitialViewController];

與:

[self.storyboard instantiateViewControllerWithIdentifier: @"vc1"];

您正在關閉applicationDidFinishLaunching的視圖控制器。 但是AppDelegate不是視圖控制器,因此沒有什么可關閉的。

在啟動應用程序時,您到底要取消什么? 我想您只是想提供正確的VC,而不是關閉它。

同樣,連續執行兩個動畫通常也不起作用。 考慮先用animated:NO代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM