0

ich derzeit an einem neuen Feature arbeite, die wie folgt dargestellt:iOS - Wie kann man vermeiden, die Navigationssteuerung in der Navigationsleiste Elemente setzen, wenn sie mit Container-Ansicht arbeiten

enter image description here

Der gesamte Inhalt ist ein Containeransicht, um den Inhalt durch Abspielen mit dem Segmentierten Steuerelement zu ändern. Ich habe 2 andere UIViewController (für den ersten und zweiten Inhalt).

Offensichtlich eingebettet in einem Navigation Controller.

Mein Problem ist, dass ich die segmentierte Steuerung nicht ablegen kann, ich meine außerhalb der Navigationsleiste.

Wenn ich es herunterbringe, erscheint es versteckt.

Hier ist ein Code meiner Haupt-View-Controller (der den Behälter Ansicht enthält):

private func addViewControllerAsChildViewController(childViewController: UIViewController) { 
     view.addSubview(childViewController.view) 

     childViewController.view.frame = view.bounds 
     childViewController.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]    
    } 

    private func removeViewControllerAsChildViewController(childViewController: UIViewController) { 
     childViewController.willMove(toParentViewController: nil) 

     childViewController.view.removeFromSuperview() 

     childViewController.removeFromParentViewController() 
    } 

Was ich tue, ist, nachdem ich meine 2 Viewcontrollers (erste und zweite) instanziiert, füge ich sie als Kind View Controller.

Wie kann ich mit der segmentierten Steuerung umgehen, ohne meine gesamte Logik und mein Design zu ruinieren, ich meine, dass sie außerhalb der Navigationsleiste sichtbar ist.

+0

Das segmentierte Steuerelement ist jetzt Teil Ihres Navigationsleistenelements, richtig? Warum musst du es "runterziehen"? Möchten Sie versuchen, es in der Navigationsleiste überhaupt zum Laufen zu bringen? –

+0

Es arbeitet perfekt mit ihm in der Nav-Bar. Aber ich musste meinen ViewController in eine neue Navigationsleiste einbetten. Deshalb habe ich meine "vorherige" Navigation verloren. Und es ist nicht wirklich ästhetisch mit einer segmentierten Steuerung in der Navigationsleiste – Balanced

Antwort

1

Ich würde es wie folgt behandeln. Fügen Sie in Ihrer Containeransicht Ihr segmentiertes Steuerelement hinzu, da Sie wissen, dass in dieser Ansicht eine Navigationsleiste die simulierten Metriken verwendet, damit Sie wissen, wo das segmentierte Steuerelement sichtbar sein wird.

Erstellen Sie in diesem Containeransicht-Controller eine weitere Ansicht, die Ihre untergeordneten Ansichtscontroller enthält. Legen Sie den Ansichtsbereich vom unteren Rand der segmentierten Ansicht bis zum Ende der Containeransicht fest. IBOutlet diese Ansicht (childContainerView), damit Sie in Ihrem View-Controller-Code darauf zugreifen können.

Anstatt einfach die untergeordneten Ansicht-Controller zu Ihrem Standard-self.view.addSubView (childVC.view) hinzuzufügen, wobei self.view die gesamte Ansicht ist, fügen Sie sie einfach der oben erwähnten IBOutletted-Ansicht (childContainerView) hinzu.

+0

Präzise und klar. Ich bin dabei. – Balanced

Verwandte Themen