iOS -Registerkartenanwendung mit Tabellenansicht, Wie reset die Tabellenansicht auf Registerkarte? Anfänger.

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

Frage

Ich habe eine Registerkartenanwendung mit 3 Registerkarten

Die erste Registerkarte ist eine Tabellenansicht. Die Registerkarten der zweiten und dritten sind einzelne Seitenansichten

Wenn ein Benutzer auf eine Tabellenzelle in Ansicht klickt, wird eine neue Ansicht mit einer Rückschaltfläche zur Tabellenzelle eingeschaltet.

Nehmen wir nun an, sie klicken auf Tab 2, dann zurück zu Registerkarte 1. Die neue Ansicht, die auf der Registerkarte 1 gedrückt wurde, ist noch sichtbar. Ich möchte die Tabellenansicht "zurücksetzen", wenn sie mit einer anderen Registerkarte von ihr weg navigieren, damit sie bei der Rückkehr mit der Tabellenansicht anstelle der neuen Ansicht präsentiert werden, die angezogen wurde.

War es hilfreich?

Lösung

Ich stimme Eljay Kommentar zu, um die Frage zu beantworten, verwenden Sie UitabbarcontrollerDelegate

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

Wenn eine neue Registerkarte ausgewählt ist tabBarController und wenn popToRootViewController:

Andere Tipps

Wie die anderen gesagt haben, ist dies wahrscheinlich keine gute Benutzererfahrung. Die Idee eines Registerkarte -Controllers ist, dass der Benutzer frei zwischen den verschiedenen Teilen ihrer App wechseln und direkt zu dem zurückkehren kann, was sie zuvor getan haben.

Wenn Sie entschlossen sind, dies auf diese Weise zu tun, machen Sie den Root View Controller Ihres Navigationsansichtscontrollers zu einer benutzerdefinierten Unterklasse und richten Sie sie als Delegierungen des Registerkarte Controllers ein.

Implementieren Sie in Ihrem benutzerdefinierten Ansichtscontroller die Funktion (), wie unten:

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

Offenlegung: Ich habe nicht versucht, den obigen Code zu kompilieren, geschweige denn zu testen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top