NavigationController und DetailView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NavigationController und DetailView

    Hallo,

    Ich bin neu hier und bräuchte eure Hilfe :)

    Ich hänge hier grad an folgendem Problem:

    Ich versuche in einem NavigationController entweder zu "einer Detailseite" oder zu einer weiteren NavigationController weiterzuleiten, jedoch lässt sich im Storyboard eben nur eine von den zwei Views auswählen für den Push.

    Ich habe bereits versucht über die Methode:

    Quellcode

    1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    2. {
    3. // Navigation logic may go here. Create and push another view controller.
    4. NSLog(@"Row: %d", indexPath.row);
    5. if(indexPath.row == 5) {
    6. //NSLog(@"Test");
    7. TestViewController *detailViewController = [[TestViewController alloc] init];
    8. //[detailViewController setSelectedId:5];
    9. //[detailViewController setTitle:@"TestTitel"];
    10. [self.navigationController pushViewController:detailViewController animated:YES];
    11. } else {
    12. //NSLog(@"Infos");
    13. InfoTableViewController *detailViewController = [[InfoTableViewController alloc] init];
    14. [self.navigationController pushViewController:detailViewController animated:YES];
    15. }
    Alles anzeigen


    jedoch kann ich die Views auf diese weise nicht im Storyboard bearbeiten, desweiten führt das ganze dazu, dass ich bei den Views (Row 0-4) immer zweimal auf "Zurück" klicken muss bis ich wieder im Hauptmenü bin.


    Der Grundlegende Aufbau der App ist dieser:

    Quellcode

    1. TabBarController ->
    2. NavigationController -> (hier sollte je nachdem welcher Menüpunkt ausgewählt wurde, entweder der DetailView kommen, oder eine weitere Navigation)
    3. DetailView
    4. NavigationController -->
    5. DetailView
    6. NavigationController ->
    7. NavigationController ->
    8. DetailView
    9. NavigationController ->
    10. DetailView



    Ich hoffe ihr könnt mir helfen.

    Gruß

    Markus
  • Ein NavigationController lässt sich nicht auf einen NavigationController pushen. Hier gibt es zur Laufzeit eine Fehlermeldung in der Console.

    Wenn Du innerhalb eines NavigationController einen anderen NavigationController anzeigen möchtest, dann geht dies nur über presentModalViewController:animated:
  • Und warum pushst du denn nicht einfach den 2. "NavigationController" ? Ist das ein ViewController, sodass du :

    NavigationController+ViewController --> Erster.DetailView --> navigationController+ViewController-->2. DetailView

    Oder:

    NavigationController+ViewController --> Erster.DetailView --> navigationController-->2. DetailView

    Ansonsten, wie gesagt, einfach Pushen:D
    Gruß

    Robin
  • robin_ schrieb:

    Wo sieht man denn, ob Methoden in einem Kommenden iOS-Version deprecated werden?

    Du solltest Dir da nicht zu viele Sorgen machen; das dauert wahrscheinlich ein paar iOS-Versionen. Du solltest aber so früh wie möglich, die Methode austauschen. Das heißt, sobald Deine App iOS 5 oder höher als Mindestvoraussetzung hat, solltest Du auf den Einsatz der veralteten Methode verzichten.
    „Meine Komplikation hatte eine Komplikation.“
  • macmoonshine schrieb:

    MCDan schrieb:

    Wenn Du innerhalb eines NavigationController einen anderen NavigationController anzeigen möchtest, dann geht dies nur über presentModalViewController:animated:

    Lieber presentViewController:animated:completion:; die Tage von presentModalViewController:animated: sind ja gezählt. ;)

    Von den aktuell ca. 70 Apps setzen bisher nur 2 (noch in Entwicklung befindliche) Apps iOS 5.0 voraus.

    Von daher muss ich noch ein wenig länger presentModalViewController:animated: verwenden, damit die Apps auch weiterhin unter iOS 4.x laufen. ;)
  • Guten Tag,

    also ich hab das mit presentViewController:animated:completion: probiert. Leider werden egal was ich versuche die NavigationBar/Tabbar nicht mitübernommen. Und die Animation passt auch nicht wirklich.

    Hat jemand vllt. ein Beispiel Code mit Storyboard, die er mir zur Verfügung stellen könnte?
  • Dies ist logisch, da ein per presentViewController:animated:(completion:) angezeigter ViewController eigentlich Fullscreen angezeigt wird. Somit wird die TabBar eines TabBarController natürlich "überlagert".

    Wenn Du die Navigation Bar vom aktuellen NavigationController übernehmen möchtest, dann musst Du den ViewController per pushViewController:animated: im aktuellen NavigationController anzeigen.

    Mir ist ehrlich gesagt nicht ganz klar, was Du eigentlich erreichen möchtest und wie die Anzeige Deiner Meinung nach aussehen soll.

    Kannst Du bitte mal einen Layout Screen posten, wie es ohne und dann mit dem neu angezeigten ViewController aussehen soll?
  • Ich hab ein Screenshot des Storyboard angehängt

    Folgendes soll passieren:

    Im ersten NavigationController wird eine Navigation aufgebaut, die in etwa so ausschaut:

    - Infos
    - Zimmer
    - Anrufen
    - ....


    Dabei soll folgendermaßen Navigiert werden:
    Bei Infos über 2 direkt auf den Detailview, der dann Text und Bilder darstellt (Dies mach ich ich über einen WebView.
    Bei Zimmer erst über 1 zu einem weiteren Menü auf dem dann ausgewählt werden kann "Einzelzimmer", "Doppel/Dreibettzimmer", "Suiten" und erst nach der Auswahl dann auf den Detailview (3) wo ich die Informationen dann mit einem WebView darstelle.

    Das selbe Prinzip soll auch auf die anderen Tabs anwendbar sein.