Нажатие контроллера представления с анимацией останавливает интерфейс - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь нажать контроллер представления для одного и того же типа более одного раза, и если я использую анимацию в push, пользовательский интерфейс зависает после pushController.

Пример: я нахожусь в ProductController, и ясделать pushViewController к другому ProductController, после этого пользовательский интерфейс зависает.

Xcode отображает следующую ошибку: *"[Snapshotting] Snapshotting a view (0x7fdd9a5bdba0, UIView) that has not been rendered at least once requires afterScreenUpdates:YES."*

Чтобы избежать зависания пользовательского интерфейса, я должен сделать настройку pushController анимированным: false,

self.navigationController?.pushViewController(productController, animated: false)

Любая идея, чтобы решить эту проблему?

1 Ответ

0 голосов
/ 24 мая 2018

Вы задаетесь вопросом, почему этот код не работает?

self.navigationController?.pushViewController(productController, animated: true)
self.navigationController?.popViewController(animated: true)

Если вы используете animated = true, функция ставит в очередь действие по отправке контроллера представления на следующем проходе через цикл событий приложения,Это не происходит сразу.

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

tl; dr:

Не делайте этого.

Однако, более важный вопрос - , почему бы вы бы нажали, а затем сразу же открыли контроллер представления?Это кажется бессмысленным.

...