2016-09-14 3 views
0

ich eine Navigationsleiste haben zu setzen, die modal von einem anderen View-Controller präsentiert wird, so dass der Rück Artikel nicht angezeigt wird,Wie Navigationsleiste zurück Artikel

I zum zweiten View-Controller auflösen überqueren müssen, und setzen Navigationsleiste darauf, ohne einen auf den ersten View-Controller zu setzen, auf der Navigationsleiste des zweiten View-Controllers sollte der Zurück-Button genauso aussehen wie der System-Zurück-Button.

Antwort

0

Das Zurück-Element wird automatisch angezeigt, wenn Sie einen ViewController drücken. Wenn du es modal präsentierst, würdest du es außerhalb des ursprünglichen Navigationscontrollers machen, deshalb würde seine Navigation durch das neue verborgen werden.

Ausgabe mit der vorgeschlagenen Lösung: Betten Sie den ersten UIViewController in einen UINavigationViewController ein und drücken Sie den zweiten, anstatt ihn modal darzustellen.

+0

Dies scheint keine Lösung zu sein, sollten Sie vielleicht nur kommentieren? –

+0

Jetzt ist es eine Lösung. Die Zurück-Schaltfläche ist eine Steuerung, die zu einem Navigationscontroller gehört, wenn Sie die Navigation nicht verwenden und dann den Zurück-Button selbst erstellen müssen. – tonik12

+0

Ja, es ist eine Lösung, aber ich brauche die Cross Auflösung Animation durch modale Darstellung –

0

Wenn Sie Navigationsleiste haben und Sie benutzerdefinierte Zurück-Taste, können Sie es wie folgt hinzu:

let button = UIBarButtonItem(title: "Back Title", style: UIBarButtonItemStyle.Plain, target: self, action: #selector(someMethod)) 
self.navigationItem.leftBarButtonItem = button 

Und in Ihrem Wähler können Sie Ihren aktuellen Viewcontroller entlassen oder eine andere zurück Methode aufrufen

EDIT

Wenn Sie einige benutzerdefinierte Animation mit standart Push-Übergang Stil benötigen, können Sie als nächstes tun:

Zum Beispiel Viewcontroller in Storyboard mit SecondViewController id

Bei der Umstellung Aktion Methode erstellen einige wie diese machen:

func showSecondViewController() { 
    guard navigationController != nil else { 
     return 
    } 
    guard let secondViewController = storyboard?.instantiateViewControllerWithIdentifier("SecondViewController") else { 
     return 
    } 
    navigationController!.pushViewController(secondViewController, animated: false) 
    UIView.transitionWithView(navigationController!.view, duration: 1, options: .TransitionCrossDissolve, animations: nil, completion: nil) 
} 
+0

Ja, das fügt einen Button hinzu, aber es ist nicht wie das System '

+0

@BrightFuture Show modally impliziert nicht das Vorhandensein der Standard-Zurück-Taste. In diesem Fall brauchen Sie eine Schaltfläche, die einfach das Fenster schließt. –

+0

Ich brauche die Cross-Auflösung Animation durch Modal zeigen, wenn ich Push verwende, kann ich die Standard-Animation ändern? –

Verwandte Themen