Представьте UIAlertViewController от ChildViewController - PullRequest
0 голосов
/ 21 января 2020

В качестве попытки уменьшить код в моем контроллере основного вида я переформирую большинство функций на два дочерних контроллера представления.

В одном из дочерних контроллеров представления пользователи могут нажать на кнопку, которая вызвала ActionSheet. Моя первая попытка выполнить это действие -

  1. Два дочерних контроллера представления подключены к родительскому контроллеру представления в раскадровке
  2. Создать свойство делегата в дочернем контроллере представления 1.
  3. В prepareForSegue родительского контроллера представления проверьте, совпадает ли segue.identifier с контроллером дочернего представления, затем назначьте родительский контроллер представления в качестве делегата дочернего контроллера представления
  4. Согласуйте родительский контроллер представления с протоколом, метод которого принимает контроллер представления в качестве параметра
  5. Когда пользователь нажимает на кнопку в дочернем контроллере представления 1, вызывается функция делегата, которая передает дочерний контроллер представления 1 функции делегата и вызывает лист действий в родительском контроллере представления
  6. После того, как пользователи выполнили действие, свойство дочернего контроллера представления обновляется

При попытке запуска появляется следующая ошибка: Warning: Attempt to present <UIAlertController: 0x7f9bb6029200> on <BudgetSmart.TransactionListViewController: 0x7f9bb5d298b0> while a presentation is in progress!

Я пытался: 1. отменить просмотр контроллера, 2. вызвать лист действий от chil. d Просмотр контроллера, но ошибка не устранена. Указывает ли контроллер представления в представлении на дочерний контроллер представления? Если да, какой должен быть подход к решению этой проблемы? Спасибо!

1 Ответ

0 голосов
/ 21 января 2020

Как отображается ваш дочерний контроллер вида? Это представлено родителем, вызывая presentViewController? Если это так, то когда вы представите лист действий родителем, вы увидите это сообщение об ошибке, потому что родитель уже представил дочерний элемент. Вам необходимо представить контроллер дочернего представления на весь экран и представить лист действий от дочернего элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...