2

このコードは、最初のViewControllerのviewWillAppearにあります

if (howManyLeft == 0) {
        NSLog(@"HERE");
        UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
        DayCompleteViewController *dayComplete = (DayCompleteViewController *)[storyboard instantiateViewControllerWithIdentifier:@"dayComplete"];
        dayComplete.delegate = self;
        [self presentModalViewController:dayComplete animated:YES];
    }

NSLogは正しく起動しますが、2番目のビューはすぐには表示されません。後でポップアップビューを表示するテーブルビューセルをクリックしてからポップアップビューを閉じると、モーダルビューを表示する他のコードがなくても、モーダルビューが表示されます。

最初に何かが起こるのを待つのではなく、起動時にすぐに表示されないのはなぜですか?

NavigationControllerとsegueを使用していたときは、これは正常に機能していましたが、不要になったため、削除しました。

4

1 に答える 1

2

そのコードをからviewWillAppearに移動しますviewDidAppear-現在のビューが表示される前にモーダルビューコントローラーを提示しようとしているため、遅延(および通常はwait_fencesエラー)が発生します(したがって、両方のビューコントローラーを同時に提示しようとします)

于 2012-05-04T12:49:33.053 に答える