1

特定の条件が存在する場合、起動時に最初にモーダル ビュー コントローラーを提示したいと考えています。次のコードを使用しています。

[self presentModalViewController:vc animated:NO];

このコードは、viewDidAppearからモーダル ビュー コントローラーを表示しますが、 viewWillAppearまたはviewDidLoadからは機能しません。コードをviewDidAppearに配置する際の問題は、モーダル ビューをロードする前に親ビューをフラッシュすることです。

4

2 に答える 2

1

アプリが起動したらすぐにこれを行うことをお勧めしますが、これは1回だけ行う必要がある場合に限ります。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
    if (![defaults objectForKey:@"firstLaunch"]){
        [self performSelector:@selector(yourModalView) withObject:nil afterDelay:0.2];
        [defaults setObject:[NSDate date] forKey:@"firstLaunch"];

    }          

    [[NSUserDefaults standardUserDefaults] synchronize];

いくつかの条件で開始するたびにそのviewControllerを提示する必要がある場合は、bdevコードを使用します。

于 2012-06-25T19:53:00.047 に答える
0

viewDidLoad でわずかな遅延を作成します。

[self performSelector:@selector(presentVC) withObject:nil afterDelay:1.0];

そしてその方法で

-(void) presentVC{
     [self presentModalViewController:vc animated:NO];
}
于 2012-06-25T19:50:20.903 に答える