2

私が書いているプロジェクトでは、新しいView Controllerを提示すると、次のエラーが発生します。

プレゼンテーションの進行中にプレゼンテーションを試みてください。

これは、最初に新しいView Controllerを提示し、次にそのビューで別のViewControllerを提示するために発生すると思います。

- (void)loadLabelSettings {
    LabelSettingsViewController *labelSettings = 
      [[LabelSettingsViewController alloc] init];
    labelSettings.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    [self presentViewController:labelSettings animated:YES completion:nil];
}

プログラムがクラッシュしたり、正常に実行されたりすることはなく、コードにエラーや警告はありません。だから私の質問は:それは私が気にかけるべきものですか、もしそうなら私はそれをどのように解決しますか?

前もって感謝します :)

4

3 に答える 3

2

あなたが言ったように、それはおそらく同時に2つのビューコントローラを提示することによって引き起こされます。最初のビューコントローラが完全に表示されるまで、2番目のビューコントローラを表示するのを待ちます。でこれを行うのが適切な場所ですviewDidAppear

于 2013-02-01T07:32:51.777 に答える
1

私の場合、aUIViewControllers UIButtonを1秒で接続しUIViewControllerましたUIStoryboardSegue。私のコードの中で、aはプログラムで2回目にそれを呼び出しました。UIButtonそのため、指定されたビューを2回押すと表示されます。

于 2015-03-26T13:22:47.267 に答える
0

スコットが書いたように、私は自分の問題を理解しました。それは、2つのビューコントローラーを同時に提示していたためです。これは、新しいViewControllerを表示するUILongPressGestureRecognizerを備えたボタンがあったために発生しました。問題は、UILongPressGestureRecognizerを使用すると、呼び出されているメソッドが2回呼び出されることでした。まず、長押しが検出されたときと、画面から指を離したとき。そのため、同じビューのpresentViewControllerメソッドが2回呼び出されました。最初の検出にのみ反応することでこれを修正しました。コードは次のとおりです。

- (void)loadButtonSettings:(UILongPressGestureRecognizer *)recognizer {

   if (recognizer.state == UIGestureRecognizerStateBegan) {

   }
}
于 2013-06-27T19:22:09.083 に答える