Pop à la vue racine lorsque l'onglet est sélectionné
J'ai eu quelques ennuis avec quelque chose que je pensais peut-être simple. J'ai une table dans ma racine-vue-contrôleur, lorsqu'une ligne est sélectionnée je pousse un nouveau point de vue et à partir de là je vais à un autre onglet.
Ma question est comment faire en sorte que dès que l'utilisateur appuie sur le premier onglet de la manette de navigation apparaît à la racine?
source d'informationauteur John S
Vous devez vous connecter pour publier un commentaire.
Délégué suivant est appelée lors de chaque onglet est sélectionné sur la tabbar.
Mettre code suivant à l'intérieur de cette méthode du délégué.
sa fonctionne très bien sur mon app.
Pour Swift amoureux:
Edit: Swift 3 mise à jour, grâce à @Justin Oroz-pour le pointage.
Ce que vous essayez de faire des sons un peu bizarre. Avez-vous lu le Human Interface Guidelines sur la combinaison de UINavigationControllers et UITabBarControllers?
Cependant, ce que vous devez faire est de détecter la sélection de l'onglet par la fixation d'un délégué de votre UITabBarController et la mise en œuvre de la tabBarController:didSelectViewController: méthode du délégué. Dans cette méthode, vous devez revenir à la vue racine contrôleur à l'aide d'UINavigationController de popToRootViewControllerAnimated: méthode.
Dans Swift 3.1
Ajouter UITabBarControllerDelegate à votre TabBar Classe:
Après:
Tout d'abord, vous devez créer la sous-classe de UITabbarController et ajouter de l'Observateur:
Lors de la tabbar est sélectionné, Nous allons traiter dans la méthode:
La UTabController suggère une autre UX pour permettre à un utilisateur de "pop à la racine". Lors du passage d'un onglet, il conserve la pleine UINav de la pile de avant de. Si elles appuyez sur l'élément de barre un deuxième temps (en tapant sur l'onglet sélectionné), ce n'est qu'à de la pop à la racine. C'est tout automatique. Certaines applications, comme instagram, de permettre à une tierce appuyez pour faire défiler vers le haut.
Je vous suggère de coller avec les valeurs par défaut que c'est ce que les utilisateurs attendent.
Ci-dessous avait travaillé pour moi .Ce code swift 3:
1> sous-classe UITabbarController et mettre en œuvre des deux ci-dessous la méthode avec un iVAr:
class MyTabBarController: UITabBarController ,UITabBarControllerDelegate {
var previousSelectedTabIndex : Int = -1
}
2> définir la tabbar délégué dans le viewdidLoad
tabBarController.selectedIndex vous donner l'onglet sélectionné
Dans tabBarController_shouldSelect_viewcontroller méthode, vous pouvez configurer votre affichage désiré contrôleur avec une certaine facilité de calcul.
si vous n'êtes pas obtenir le code ci-dessus jouer avec les deux méthodes mentionnées ci-dessus et de vous faire connaître la façon dont les deux travaillent ensemble