J'essaie actuellement de find un moyen de supprimer tout en exécutant l'application un élément TabBar, j'ai trouvé un moyen de l'activer ou de le désactiver mais de ne pas le supprimer.
Pour le désactiver, je fais:
Dans ViewDidLoad
if let tabBarItem = self.tabBarController?.tabBar.items?[3] as? UITabBarItem { tabBarItem.enabled = false }
Cela fonctionne bien mais toujours l'user peut voir l'article TabBar et je vais simplement le supprimer, est-il un moyen?
Je veux triggersr TabBarItem via Parse, si je mets datatables d'parsing à true, il devrait montrer autre chose que cela ne devrait pas.
Vous voulez définir la propriété viewControllers
de votre tabBarController
avec un tableau dans lequel vous avez exclu le viewController particulier que vous ne voulez plus avoir.
if let tabBarController = self.tabBarController { let indexToRemove = 3 if indexToRemove < tabBarController.viewControllers?.count { var viewControllers = tabBarController.viewControllers viewControllers?.remove(at: indexToRemove) tabBarController.viewControllers = viewControllers } }
Pour ceux qui veulent juste désactiver un élément. Utilisez ce code de la solution @ Daniele. et placez-le dans votre class UITabBarController
viewDidLoad() { let index = 0 //0 to 5 viewControllers?.remove(at: index) }
Swift 3.1: Pour supprimer un seul index dans le controller de barre d'tabs (vous pouvez utiliser cette méthode dans viewDidLoad et viewDidAppear tous les deux)
override func viewDidAppear(_ animated: Bool) { } override func viewDidLoad() { super.viewDidLoad() } viewControllers?.remove(at:0) // for 0 index viewControllers?.remove(at:1) // for 1 index viewControllers?.remove(at:2) // for 2 index
si vous avez 4 index dans la barre d'tabs et vous voulez supprimer les 2 derniers index
viewControllers?.remove(at:2) viewControllers?.remove(at:2)
la première ligne enlèvera l'index 3ème et vous restrez 3 de 4 et encore quand vous enlevez le 2ème index il retirera encore l'index 3ème et alors vous aurez restr 2 index en dernier.
Le meilleur moyen est d'utiliser uniquement du text au lieu de l'image. choisissez 'espace' comme text puis désactivez-le. alors l'user ne pourra pas le voir. Je ne l'ai pas testé mais je suis sûr que ça marchera.