Swift: Comment exécuter une action lorsque UITabBarItem est pressé
Actuellement, j'ai un Onglet de la Barre de Contrôleur est connecté à un tableview contrôleur. Je suis en train d'aller vers le haut de la tableview lorsque j'appuie sur la barre d'onglet de l'élément. Je sais comment l'obtenir vers le haut de la tableview. Je ne sais pas comment faire une action lorsque l'article est pressé.
OriginalL'auteur K Swisha | 2015-06-15
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
UITabBarDelegate
avec la méthodedidSelectItem
. Utiliser comme n'importe quelle norme délégué:Et ne pas oublier de mettre votre barre d'onglet délégué à
self
en-vue-contrôleur.tabBar.delegate = self Si elle vous aide à maintenant, ou quelqu'un d'autre au cas où.
OriginalL'auteur Nikita Zernov
Voici une réponse à cette question
Fondamentalement, vous faites ceci:
Mettre en œuvre les didSelectItem méthode, quelque chose comme ceci:
Cela vous donnera accès à chaque onglet de l'élément taraudé événement. Espérons que cela aide!
OriginalL'auteur erparker
SWIFT 3
Et ne pas oublier de mettre votre tabBar délégué à soi-même dans viewDidLoad
OriginalL'auteur Safad Funy
J'ai eu de la difficulté à mettre en œuvre les autres réponses ici. C'est une meilleure réponse. Il suppose l'utilisation d'un
UITabBarController
(la valeur par défaut si vous créez un nouveau Onglets d'Application). Cette solution permet d'imprimer un message chaque fois qu'une-vue-contrôleur onglet bouton est actionné.Code
Créer une nouvelle Swift fichier appelé MyTabBarController.swift. Collez le code suivant.
Interface Builder
Sur votre scénarimage, sélectionnez l'Onglet de la Barre de Contrôleur. Puis dans l'Identité de l'inspecteur, définissez le nom de la classe à
MyTabBarController
(qui est, le nom de la classe dans le code ci-dessus).C'est tout. Vous pouvez exécuter votre application dès maintenant et soyez notifié à chaque fois que l'utilisateur tape sur la barre d'onglet de l'élément.
Notes
Si vous avez besoin d'exécuter une méthode sur un robinet, vous pouvez faire quelque chose comme ce qui suit dans
didSelect
méthode.Vous pourriez faire la
FirstViewController
mettre en œuvre le délégué et de tout prendre en charge. De cette façon, vous n'auriez pas besoin de faire quelque personnaliséUITabBarController
sous-classe et de les mettre en IB. Cependant, avoir un enfant ne le parent semble comme le mauvais endroit pour le faire. De toute façon, ici, c'est:La
didSelect
méthode ci-dessus est appelée à n'importe quel onglet est exploité.UITabBarControllerDelegate
documentationtabBarController
méthode. La réponse a été acceptée à l'aide detabBar
méthode à la place, et semble fonctionner sur ViewController, mais pas sur TabBarControllerOriginalL'auteur Suragch
Une autre solution est de faire quelque chose dans
viewDidAppear
dans n'importe quelle Vue Contrôleur de l'onglet affiche.Premier Onglet View Controller
Deuxième Onglet View Controller
C'est une solution beaucoup plus simple à ce problème. Merci!
OriginalL'auteur Suragch