Probleme bei der Zuordnung mehrerer Views bei Segmented Control

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

  • Probleme bei der Zuordnung mehrerer Views bei Segmented Control

    Hallo zusammen,

    ich bin gerade dabei mir Swift beizubringen und hab da mal eine fachliche Frage, an der ich gerade hänge.
    Und zwar habe ich ein Segmented Control in meine App eingebaut und meine View Controller mit einem Container View Controller zum Leben erweckt. Das Ganze hat auch geklappt und man sieht es in folgendem Video, welchen ich zur Anleitung hatte: youtube.com/watch?v=kq-lHR5ZOW0

    Danach hatte ich versucht, einen dritten View Controller einzubauen, doch jetzt hänge ich an dem Punkt "update View" zu sehen im Video ab Min. 12:43
    Ich hab dort jetzt meine Views stehen, sagen wir Grün, Gelb, Rot. Verstehe aber nicht, wie ich es programmieren muß, daß sie richtig erscheinen. Mal Sehe ich einmal grün und zweimal Rot, etc. aber nie alle drei in der richtigen Reihenfolge, wenn ich die Buttons des Segmented Control durchklicke.

    Wofür steht das Ausrufezeichen beim Grünen View Controller und welche Zahlen muß ich hinten eintragen, damit auch wirklich der grüne Bildschirm beim Grünen link erscheint etc.? Hab da jetzt schon zig Varianten mit 0,1 und 2 probiert.

    Hier mal der Codeabschnitt:

    private func updateView() {

    GruenViewController.view.isHidden = !(segmentedControl.selectedSegmentIndex == 0)
    GelbViewController.view.isHidden = (segmentedControl.selectedSegmentIndex == 0)
    RotViewController.view.isHidden = (segmentedControl.selectedSegmentIndex == 0)

    }

    Wäre für eine Lösung/kurz Erklärung sehr dankbar!

    Gruß mac
  • Mac & i Test Abo
  • Ok, die Implementierung in updateView() ist etwas verwirrend. Keine Ahnung, warum der Entwickler von dem Tutorial es so umsetzt. Es scheint allgemein cool zu sein, Code zu verwenden, der nicht direkt zu verstehen ist.

    Bei mir würde updateView() so aussehen:

    C-Quellcode

    1. private func updateView() {
    2. summaryViewController.view.isHidden = segmentedControl.selectedSegmentIndex != 0
    3. sessionsViewController.view.isHidden = segmentedControl.selectedSegmentIndex != 1
    4. }
    Dann sollte sich auch die Lösung für weitere Views erschließen. ;)

    Allerdings machen beide Implementierungen (also weder die vom Entwickler des Tutorial, als auch mein) keinen Gebrauch vom angedachten lazy loading der View Controller. ;(