¿Es posible que cuando un usuario haga clic en un elemento de la barra de pestañas, pueda anularlo en UITabBarController , donde luego verifico un UserDefault que luego decide si muestro la vista o return y permanecen en su vista actual?
Sería algo como esto:
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { if item.image == UIImage(named: "TabProfile") { // Profile tab selected if !loginController.isUserLogged() { // Not logged in... showLoginView() // Following line doesn't work... tabBarController?.selectedIndex = selectedIndex } } } Si es posible, quiero realizar esta verificación y, si es false , evitar que la vista llegue incluso a viewDidLoad .
Gracias.
Supongo que necesitas
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { if let ind = tabBarController.viewControllers!.index(of:viewController) , ind == 2 { // suppose profile is 2 // if userNotLogged { // present modal login view return false } } return true }