【发布时间】:2015-08-14 02:00:32
【问题描述】:
我有一个带有三个标签的UITabBarController。当按下某个按钮时,我希望用户立即看到一个人视图控制器(ABPersonViewController 类的一个实例)。
我不想只使用带有人员视图控制器的presentViewController() 方法作为参数,因为当用户可以看到它所呈现的底层视图控制器时,这会导致延迟。
我也不能让视图控制器继承自 ABPersonViewController,因为它是由 Apple 设置的,因此它不能被子类化。有没有办法可以做到这一点?
感谢日航的回答:
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
}
【问题讨论】:
-
请不要在您的问题中复制/包含答案。如果答案对您有所帮助,您可以投票和/或接受它。但答案不属于问题。
标签: ios swift uitabbarcontroller abaddressbook