ios best practices - Navigation und Registerkarten und Push / Pop

  • Mein Problem:

    Für meine App muss ein Benutzer angemeldet sein. Die erste angezeigte Ansicht ist eine Anmeldeansicht. Wenn wir angemeldet sind, wird die App-Ansicht angezeigt, bei der es sich um einen Registerkarten-Controller handelt. Eine dieser Registerkarten ist Kontoinformationen + Abmelden. Beim Abmelden möchte ich zum Anmeldebildschirm zurückkehren.

    Meine Lösung:

    Die Stammansicht ist eine Navigation Controller, der die Hauptansicht hält. Die Hauptansicht ist transparent. Sie sagt nur, dass Sie nicht angemeldet sind. Schieben Sie den Kontobildschirm auf den Stapel. Wenn Sie angemeldet sind, schieben Sie die Tab-Controller-Ansicht auf den Stapel. Jede Registerkarte in der Registerkarte ist eine Navigationssteuerung. Durch Klicken auf die Registerkarte Konto wird die Kontoansicht in der Kontoansicht auf den Stapel verschoben. Die Kontoansicht verfügt über eine Schaltfläche zum Abmelden, die zwei Ansichten anzeigt (und nicht funktioniert):

      // Go to main view (2 views up) to show default login screen (as we won't be logged in anymore)
        UINavigationController *navController = self.navigationController;
        [navController popViewControllerAnimated:NO];
        [navController popViewControllerAnimated:YES];
     

    Was ich denke, ist das Problem:

    Der Navigationscontroller, den ich auf der obersten Ebene habe, stimmt nicht mit den untergeordneten Navigationscontrollern in der Registerkarte überein.

    Mein Problem scheint ziemlich typisch zu sein, aber meine Lösung scheint ziemlich klobig zu sein. Das kann nicht der beste Weg sein! Irgendwelche Ratschläge?

    22 November 2011
    nflacco
1 answer
  • Versuchen Sie so etwas? Es scheint gewunden zu sein, aber versuchen wir es.

     [self.navigationController popViewControllerAnimated: NO];
    [self.tabBarController.navigationController popViewControllerAnimated: YES];
     
    22 November 2011
    Alexsander Akers