Подтвердить что ты не робот

Значение предупреждения "во время презентации!"

Когда я интегрирую Instagram в свой проект. Я получаю image из UIImagePickerController, и после этого я хочу отправить его в Instagram. Но когда я отправляю image в Instagram на UIDocumentInteractionController делегат метод presentOptionsMenuFromRect:inView: animated: как этот

[documentInteractionController presentOptionsMenuFromRect:CGRectZero inView:self.view animated:YES];

Предупреждение приходит Предупреждение. Попытайтесь представить < _UIDocumentActivityViewController: 0x7584780 > во время презентации!
Приложение не сбой. Но я не получаю проблему. Почему это предупреждение приходит и что это значит. Я искал в Интернете и читал вопросы об этом, но не получил никакого ответа. Помогите мне!

4b9b3361

Ответ 1

// Breaks
[viewController1 dismissViewControllerAnimated:YES completion:NULL];
[self presentViewController:viewController2 animated:YES completion:NULL];

// Does not break
[viewController1 dismissViewControllerAnimated:YES completion:^{
    [self presentViewController:viewController2 animated:YES completion:NULL];
}];

Версия вышеприведенного кода Swift 3 будет выглядеть так:

// Breaks
viewController1.dismiss(animated: true)
present(viewController2, animated: true)

// Does not break
viewController1.dismiss(animated: true) {
    present(viewController2, animated: true)
}

Обратите внимание на использование обработчика завершения во втором примере выше.
Он представляет только viewController2 после того, как viewController1 был полностью уволен.

Ответ 2

Это означает, что вы представляете или отклоняете UIImagePickerController и пытаетесь представить UIDocumentInteractionController, в то время как первая презентация или увольнение не завершена.

Ответ 3

Это означает, что вы одновременно представляете 2 ViewControllers. Вызовите своего делегата после завершения первой презентации.

Ответ 4

Это также может произойти, если у вас есть (например) UIButton, подключенный к IBAction, чтобы представить ViewController, а также создать segue в Storyboard от кнопки до целевого ViewController.

Если бы это произошло, когда я забыл удалить соединение IBAction из UIButton, когда я перемещал некоторые взаимодействия.

Удаление соединения IBAction или segue разрешит его.

Ответ 5

Как уже было сказано, это означает, что вы одновременно пытаетесь представить 2 модальных окна или popovers. Но в моем случае я не видел никакого модального окна или popover, когда получаю это сообщение.

Причиной ошибки в моем случае было следующее. Когда я впервые вызвал popover, чтобы показать его, это была еще одна ошибка, которая препятствовала появлению popover, но она каким-то образом продолжает оставаться в "представленном" состоянии. Все последующие попытки показать popover не удались с ошибкой во время выполнения "пока выполняется презентация!".

Итак, если вы столкнулись с той же ситуацией, просмотрите журнал и попробуйте найти первую ошибку, начиная с *** WebKit discarded an uncaught exception in the....

Надеюсь, что это сэкономит время.

Ответ 6

Для тех, кому нужна/нужна версия с быстрым 3, здесь

viewController1.dismiss(animated: true, completion: {
    self.present(self.viewController1, animated: true)
})

viewController1 - это диспетчер представлений, который вы хотите представить.

Ответ 7

Попробуйте..

    double delayInSeconds = 1.0;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

        [self performSegueWithIdentifier:@"Identifier" sender:self];

    });

Ответ 8

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

Итак, технически я пытался одновременно открыть 2 представления.