0

「アプリケーションがターゲットに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;
}
4

2 に答える 2

0

私が使用しているのは、あなたが見逃していると思います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"];
于 2013-01-07T15:05:20.917 に答える
0

でViewControllerを閉じていますapplicationDidFinishLaunching。ただし、AppDelegateはビューコントローラではないため、却下するものはありません。

アプリを起動するときに、正確に何を却下しますか?正しいVCを提示したいだけで、却下したくないと思います。

また、2つのアニメーションを続けて実行することも、通常は機能しません。animated:NO代わりに最初のを行うことを検討してください。

于 2013-01-07T15:08:06.493 に答える