Ho un UITabBarController
con tre schede. Quando viene premuto un determinato numero, desidero che l'utente visualizzi immediatamente un controller di visualizzazione persona (un'istanza della classe ABPersonViewController
).PersonViewController in TabBarController
Non voglio utilizzare solo il metodo presentViewController()
con un controller di visualizzazione persona come parametro perché questo comporta un ritardo, quando l'utente può vedere il controller di visualizzazione sottostante da cui viene presentato.
Non riesco nemmeno a ereditare il controller di visualizzazione da ABPersonViewController
, perché è impostato da Apple in modo che non possa essere sottoclassato. C'è un modo per farlo?
Grazie alla risposta di 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
}
Si prega di non copiare/includere una risposta nella tua domanda. Se una risposta ti ha aiutato puoi andare avanti e indietro o accettarlo. Ma una risposta non appartiene alla domanda. – Rizier123