topViewController в iOS 12 / Xcode 10 - PullRequest
       39

topViewController в iOS 12 / Xcode 10

0 голосов
/ 18 сентября 2018

Итак, сегодня я обновился до Xcode 10 и iOS 12, и теперь я получаю следующее сообщение об ошибке при вызове topViewController из UINavigationController:

Неоднозначное использование topViewController

if let myVC = navigationController.topViewController as? MyViewController {}

Хотя следующий код работает просто отлично.

if let myVC = navigationController.visibleViewController as? MyViewController {}

Кто-нибудь знает какие-либо изменения в iOS 12 по этому поводу?

1 Ответ

0 голосов
/ 22 сентября 2018

Я могу предложить вам эту функцию для получения topViewContoller в качестве расширения.Легко использовать, как вы думаете.

extension UIApplication {
    class func topViewController(controller: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
        if let navigationController = controller as? UINavigationController {
            return topViewController(controller: navigationController.visibleViewController)
        }
        if let tabController = controller as? UITabBarController {
            if let selected = tabController.selectedViewController {
                return topViewController(controller: selected)
            }
        }
        if let presented = controller?.presentedViewController {
            return topViewController(controller: presented)
        }
        return controller
    }
}

Использование:

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