Comment masquer uitabbarcontroller
J'ai un problème avec UITabBarController
. Dans mon application, j'ai envie de le cacher, mais sans l'aide de hidesBottomBarWhenPushed
parce que je veux cacher pas quand je l'ai poussé. Par Exemple, je veux le cacher lorsque j'appuie sur un bouton Masquer dans mon application.
J'ai lu de nombreux articles dans google, mais je ne peux pas savoir comment je peux faire cela.
- double possible de Iphone: Est-il possible de masquer la TabBar?
InformationsquelleAutor Viktor Apoyan | 2011-03-11
Vous devez vous connecter pour publier un commentaire.
Je suis coller ce à partir de mon code de travail... vous pouvez appeler ces méthodes pour masquer et afficher les tabbarcontroller.... il suffit de passer tabbarcontroller exemple de ces fonctions..
Modifié Setomidor la réponse de travailler à la fois sur le paysage, le portrait, et iPad (le 320 et 480 valeurs ne fonctionne que sur iPhone).
Aussi modifié le code pour gérer les modifications introduites dans iOS 6 avec UIDevice changement d'orientation et de vous assurer qu'il fonctionne correctement, même lorsque l'appareil est couché sur le dos.
- 49.0
avectabbarcontroller.tabBar.frame.size.height
pour nettoyeur de code qui a moins de chance de casser dans les futures versions iOS.Dans votre méthode d'action pour le bouton:
Saurahb et karlbecker_com les solutions sont grands, mais ils peuvent provoquer une évidente popping effet lors de l'affichage contient un tableview tandis que la barre d'onglet anime sauvegarder. J'ai fait quelques modifications, et les combiner en une seule fonction (comme une catégorie sur UITabBarController). Il n'est pas complètement parfait (retard de correction de l'animation), mais donne de bons résultats avec des tables.
Si vous aimez l'animation des blocs et des catégories, donner à ceci un essai. De l'Orientation et de l'appareil convivial.
UITabBarController+ShowHideBar.m:
UITabBarController+ShowHideBar.h:
Utilisation:
Saurabh la réponse ci-dessus peut être étendu à travailler en orientation paysage:
`
Le correspondant x_pos numéros pour showTabBar() sont
431
et271
.@karlbecker_com Réponse parfaite pour l'iPhone 4 et l'iPhone 5. Si quelqu'un est d'avoir des problèmes avec iOS7 barre noire en bas de définir la tabBarController translucides
C'est karlbecker_com réponse, porté à MonoTouch (Xamarin.iOS).
La seule différence est que j'ai mis en œuvre les méthodes d'une classe qui hérite de UITabBarController, de sorte que les références à "
tabbarcontroller
" étaient remplacés par "this
".Depuis IOS 7.1, "Swift" solutions:
Espérons que cela pourrait les aider!
vous pouvez pousser un modal-vue-contrôleur
cela permettra de créer un tout nouveau point de vue en plein écran au-dessus de votre cours.
rejeter ist avec
dismissModalViewController:animated:
La solution ci-dessous fonctionne très bien pour moi exactement dans le même cas d'utilisation où je dois me déplacer en mode plein écran avec TabBar animation.
Fondamentalement, l'idée est
pour créer un instantané de UITabBar;
ajouter le UIImage de l'instantané à UIImageView qui a la même image que UITabBar n';
redimensionner vision sous-jacente et de les placer sur auto.tabBarController.vue;
ensemble UITabBars'alpha pour être 0.0;
lieu le UIImageView avec UITabBars'instantané sur le auto.tabBarController.vue;
Une fois que le ci-dessus est obtenu, de faire toute sorte d'animation
J'ai essayé à peu près toutes les réponses, mais aucune n'a fonctionné pour moi. Mon application a un UITabBarController que la vue de la racine, et chaque onglet dispose d'un UINavigationController. L'un des UINavigationControllers a un UICollectionViewController que la vue de dessus de la manette. Lorsque l'utilisateur sélectionne un élément dans la UICollectionView, je voulais la vue de détail contrôleur pour obtenir poussé sur la pile de navigation. Ma vue de détail avait alors une barre d'outils en bas. Je ne voulais pas la barre d'outils apparaît en haut de l'onglet de la barre qui semble maladroit, et la commutation de l'onglet contextes ne sont pas nécessaires de ce point de vue. J'aurais probablement pu faire facilement résolu ce problème manuellement en plaçant UIToolbars et UITabBars et n'utilisant pas de UITabBarController et intégré dans la UIToolbar, mais qui semblait trop refactoring et un peu inélégant.
À la fin, ma solution était assez simple: étendre les limites de la UITabBarController la partie inférieure de l'écran. J'ai ajouté à ma vue de détail de contrôleur:
Puis à reshow l'onglet de la barre lorsque l'utilisateur pop de retour vers le haut de mon UINavigationController, j'ai ajouté à mon top view controller:
dans iOS8, il suffit seulement de définir la
hidden
propriété de latabBar
Comme dans Swift, vous pouvez
Je le fais dans mes
didFinishLaunchingWithOptions
dans leappdelegate
et il fonctionne très bien, je pense que si je me souviens bien dans les anciennes versions iOS vous également nécessaire de définir laframe
de latabBar
à quelque chose en dehors de l'écran, sinon letabbar
ne serait pas montrer mais il continuera d'occuper l'espace.Swift et la version modifiée de @Saurabh code
Méthode
Pour montrer
Pour masquer
Voici une allégée swift port de @Thomas Verbeek 's version pour ceux VCs sans tableaux (testé sous iOS 8.4):
Et ici le plus direct de port (pas testé):
Rapidement une version avec de l'animation, vous devez définir une propriété
isHideTabBar
par vous-même.Masquage de la barre d'onglet n'est pas une solution adéquate, ne pas ajuster l'affichage actuel des contrôleurs de vue de la hauteur.
Au lieu de cela, vous pouvez simplement transformer l'onglet de la barre elle-même, soit par sa hauteur (cacher) ou une identité transformer pour réinitialiser visible.
Noter que vous devrez définir votre point de vue contrôleur "s'étend au-dessous du fond des bars" et "s'étend sous opaque bars" pour supprimer le fond noir lors de l'animation.