от
мое приложение начинается с моего HomeController как мой rootViewController встроен в контроллер навигации.
window?.rootViewController = UINavigationController(rootViewController: 
HomeController(collectionViewLayout: layout))
В моем HomeController у меня в UIView с кнопкой, которая при постукивании представляет для UIViewController:
func presentPopOver() {
    let topController: UIViewController = UIApplication.shared.keyWindow!.rootViewController!
    let controller = PopOverView()
    controller.modalPresentationStyle = .overCurrentContext
    controller.modalTransitionStyle = .crossDissolve
    topController.present(controller, animated: true, completion: nil)
}
У меня другой для UIViewController называется CategoriesController. Здесь я изменять статические переменные в моем HomeController, а затем снова представить моего HomeController.
func goHome() {
    HomeController.categoryToDisplay = category ?? ""
    let layout = UICollectionViewFlowLayout()
    let controller = UINavigationController(rootViewController: HomeController(collectionViewLayout: layout))
    present(controller, animated: true, completion: nil)
}
До сих пор все работает, как ожидалось, и данные в HomeController была обновлена. Однако теперь, когда я нажимаю на кнопку для вызова presentPopOver() я получаю: Попытка представить на чье мнение не в окне иерархии! Я пытался обновить presentPopOver вот так:
func presentPopOver() {
    let topController: UIViewController = UIApplication.shared.keyWindow!.rootViewController!
    topController.dismiss(animated: false, completion: nil)
    let controller = PopOverView()
    controller.modalPresentationStyle = .overCurrentContext
    controller.modalTransitionStyle = .crossDissolve
    topController.present(controller, animated: true, completion: nil)
} Теперь я больше не получаю "попытка представить вид .. не в окне иерархии!" предупреждение, и всплывающее окно отображается, но мой HomeController, похоже, возвращается в исходное состояние, прежде чем данные были изменены из CategoriesController. Если кто-то может объяснить... - почему PopOverView просмотреть больше нет в моей иерархии взглядов, когда я вернусь в мой HomeController от CategoriesController - почему увольнение topController устраняет предупреждение, но портит мой обновленный HomeController. И, наконец, если у кого-то есть рекомендации, решение показать на HomeController с обновленными данными и PopOverView работы, которые будут наиболее полезны.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...