Получение этого предупреждения "во время презентации" (Xcode)

В проекте, который я пишу, я получаю эту ошибку, когда представляю новый контроллер представления:

Попытайтесь представить.... во время презентации!

Я думаю, что это происходит, потому что я сначала представляю новый контроллер представления, а затем в этом представлении я представляю другой контроллер представления.

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

Программа не аварийно завершает работу или что-либо еще, она работает нормально, и в моем коде нет ошибок или предупреждений. Итак, мой вопрос: это то, что меня должно волновать, и если да, то как мне это решить?

Заранее спасибо:)

3 ответа

Решение

Это, как вы сказали, возможно, вызвано одновременным представлением двух контроллеров представления. Дождитесь представления второго контроллера представления, пока первый не будет полностью представлен. Хорошее место было бы сделать это в viewDidAppear,

В моем случае я подключил UIViewControllersUIButton со вторым UIViewController по UIStoryboardSegue, Внутри моего кода это называется программно во второй раз. Так нажимая UIButton вызвал представление указанного представления два раза.

Я понял свою проблему, поскольку Скотт написал, что это было, потому что я представлял 2 контроллера представления одновременно. Это произошло потому, что у меня была кнопка с UILongPressGestureRecognizer, которая показывала новый контроллер представления. Проблема заключалась в том, что при использовании UILongPressGestureRecognizer вызываемый метод вызывается дважды. Сначала, когда обнаружено долгое нажатие и когда ваш палец отпущен с экрана. Таким образом, метод presentViewController одного и того же представления вызывался дважды. Я исправил это, реагируя только на первое обнаружение. Вот код:

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

   if (recognizer.state == UIGestureRecognizerStateBegan) {

   }
}
Другие вопросы по тегам