UITabBarController's viewControllers представляет проблему модального контроллера - PullRequest
0 голосов
/ 08 июня 2018

У меня есть UITabBarController с настройкой 4 viewControllers.

У одного из контроллеров есть кнопка, которая представляет другой контроллер (в UINavigationController) со следующей настройкой:

self.definesPresentationContext = true
navController.modalPresentationStyle = .overCurrentContext
navController.modalTransitionStyle = .crossDissolve
self.present(navController, animated: true)

До этогоТочка работает нормально.

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

Примечание: для этого случая мне нужно overCurrentContext, не хочу блокировать UITabBarController (с fullScreen) .. Также попробуйте с .currentContext, custom

1 Ответ

0 голосов
/ 08 июня 2018

Если это та же ошибка, которую я демонстрирую здесь , я предлагаю обходной путь, чтобы пользователь не мог переключиться на другую вкладку, пока эта вкладка отображает представленный контроллер представления:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarController?.delegate = self
}
extension FirstViewController : UITabBarControllerDelegate {
    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        return self.presentedViewController == nil
    }
}
...