Контроллер анимированного всплывающего окна iOS, в результате чего элемент навигации не открывается
Фон:
У меня есть два вида контроллеров A
а также B
где B
толкается сверху A
через навигационный контроллер. A
а также B
у каждого есть свой элемент навигации.
B
обычно появляется анимация, но при определенных условиях операция захвата немедленно захватывается и A
представляет другой контроллер представления, C
без анимации.
Я заметил, что после C
уволен, B
элементы навигации по-прежнему на панели навигации, когда B
ушел и A
является контроллером вида навигационного контроллера.
Это не происходит в операции выталкивания B
не анимирован, поэтому я пришел к выводу, что завершение анимации всплывающего окна - это всплывающий элемент навигации контроллера всплывающего представления, B
в моем случае.
Вопрос:
Я знаю хаки, которые можно использовать для выполнения этой работы - не анимировать операцию pop в определенных условиях - но в конце концов это хак, который портит дизайн и ответственность каждого контроллера представления. (B
не должен знать, что это должно появиться без анимации. Ни один из B
бизнес.)
Я пытался с помощью navigationBar.popItem(animated:)
в A
но это дает мне libc++abi.dylib
исключение по какой-то причине.
Так будет ли более элегантный способ справиться с этой ситуацией? Или кто-нибудь знает почему popItem(animated:)
приводит к исключению?