J'ai une application UITabBar qui implique également un UINavController puis un UITableView donc:
UITabBarView -> UINavController -> UITableView -> UIController
Quand je vais dans la vue UIController, je cache le spectacle tabar je peux agrandir la vue. Lorsque je retourne à mon UITableView, la barre d'onglets affiche un décalage d'une seconde vers le haut avant de se restituer dans la position correcte mais avec les polices différentes. Voir ci-dessous les photos pour vous aider à comprendre le problème:
Vue normale de la barre d'onglets affichée sous UITableView
UIControlView avec la barre d'onglets masquée
Malheureusement, je ne peux pas saisir l'animation où elle montre les icônes TabBar hors de la zone UITabBar.
Toute aide serait très appréciée!
4 Réponses :
Avec l'aide de @Mocha, j'ai ajouté le self.tabBarController.tabBar.hidden = false pour le UINavController dans viewWillAppear, puis je l'ai mis à "true" dans le viewWillDissappear.
Bien sûr! J'ai été surpris de voir que vous n'avez pas posté la réponse! Merci encore!
Au lieu d'utiliser xib, vous pouvez le faire par programme en définissant tabBarController.tabBar.hidden = false / true dans vos méthodes viewWillAppear
override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) tabBarController?.tabBar.isHidden = true // or false }
Vous pouvez masquer l'UITabBar à l'aide du storyboard et lorsque vous revenez à UITabBar s'affichera.
Commencez par aller dans le storyboard et sélectionnez la vue que vous souhaitez masquer le TabBar lorsque la vue s'affiche, et activez la barre Masquer Boutton sur appuyez sur
et pour passer à la vue que vous souhaitez masquer theTabBar utilisez ce code:
let SecondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "yourview") as! yourview self.navigationController?.pushViewController(SecondViewController, animated: true)
J'ai rencontré le même problème sous Xcode 10.1 et Simulator 12.1:
animation étrange en revenant d'une barre d'onglets cachée (en utilisant 'Masque la barre inférieure lors de la poussée'); Les éléments TabBar sont en dehors de la TabBar et décalés vers la gauche et au-dessus de la TabBar, puis se mettent en place
Affichage déformé des TabBarItems par la suite
Pour moi, il semble que cela soit lié au rendu du simulateur car cela fonctionne bien lors des tests sur l'appareil.
Si quelqu'un d'autre rencontre ce problème, je suggérerais d'essayer d'abord rapidement de tester sur un appareil réel (avant d'investir beaucoup de temps).
Pouvez-vous montrer le code comment masquer / afficher la barre d'onglets?
Salut @Mocha - pour masquer le TabBar, je viens de vérifier la section StoryBoard de l'UIViewController où il est dit "Masquer la barre inférieure lorsque la vue est poussée". Je ne fais rien pour afficher à nouveau la barre d'onglets.
Hm. Je ne suis pas aussi familier avec les xibs. Vous pouvez peut-être le faire par programme en définissant self.tabBarController.tabBar.hidden = true pour le UIController et self.tabBarController.tabBar.hidden = false pour le UINavController dans viewWillAppear
Merci pour l'aide @Mocha J'ai ajouté le self.tabBarController.tabBar.hidden = false pour le UINavController dans viewWillAppear, puis je l'ai mis à "true" dans le viewWillDissappear. Cela fonctionne maintenant!