У меня есть UITabBarController
с тремя вкладками. Когда кто-то нажат, я хотел бы, чтобы пользователь сразу увидел контроллер вида человека (экземпляр класса ABPersonViewController
).
Я не хочу просто использовать метод presentViewController()
с контроллером представления человека как параметр, потому что это приводит к задержке, когда пользователь может видеть базовый контроллер представлений, из которого он был представлен.
Я также не могу заставить контроллер представления наследовать от ABPersonViewController
, потому что он установлен Apple, так что он не может быть подклассифицирован. Есть ли способ, которым я могу это сделать?
Благодаря ответу JAL:
func tabBarController(tabBarController: UITabBarController, shouldSelectViewController viewController: UIViewController) -> Bool {
let navViewController = viewController as! UINavigationController
// First, check to see if the view controller is the one you want to override
if let myViewController = navViewController.viewControllers[0] as? ThirdViewController {
let abpvc = ABPersonViewController()
abpvc.personViewDelegate = self
self.navigationController?.pushViewController(abpvc, animated: true)
return false
}
return true
}