l'application iOS avec vue à onglets de table, comment réinitialiser onglet Affichage de la table? Débutant.

StackOverflow https://stackoverflow.com/questions/8840978

Question

I ai une application à onglets avec 3 onglets

Le premier onglet est une vue de table Les deuxième et troisième onglets sont des vues en une seule page

Quand un utilisateur clique sur une cellule de table en vue d'une nouvelle vue est poussé sur un bouton de retour à la cellule du tableau.

Maintenant, supposons que cliquent sur l'onglet 2, puis de nouveau à l'onglet 1. La nouvelle vue qui a été poussé sur l'onglet 1 est encore visible. Ce que je voudrais est d'avoir la vue de la table « reset » quand ils naviguent loin avec un autre onglet afin que lors de leur retour, ils sont présentés en vue de la table au lieu de la nouvelle vue qui a été poussé sur.

Était-ce utile?

La solution

Je suis d'accord avec un commentaire ElJay, mais pour répondre à la UITabBarControllerDelegate question de l'utilisation des

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

lorsqu'un nouvel onglet est sélectionné si le siège actuel est l'onglet 1 propriété selectedIndex de tabBarController et si oui popToRootViewController:

Autres conseils

Comme les autres l'ont dit, ce qui est probablement pas une bonne expérience utilisateur. L'idée d'un contrôleur onglet est qu'il permet à l'utilisateur de commutateur librement entre les différentes parties de leur application et aller de retour à ce qu'ils faisaient avant.

Si vous êtes déterminé à le faire de cette façon, alors que votre vue racine du contrôleur de vue de la navigation contrôleur une sous-classe personnalisée, et le mettre en place en tant que délégué de la barre d'onglets contrôleur.

Dans votre contrôleur de vue personnalisée, mettre en œuvre la fonction shouldSelect (), comme suit:

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool
{
  if viewController == self.navigationController {
    self.navigationController.popToRootViewController()
  }
  return true
}

Divulgation:. Je n'ai pas essayé de compiler le code ci-dessus, beaucoup moins tester

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top