2015-05-31 21 views
8

Ich arbeite seit einiger Zeit an einer App und schiebe einen View-Controller aus dem AppDelegate. Wenn dies geschieht, verschwindet die Navigationsleiste, die zuvor auf dem View-Controller war, der gedrückt wurde. Im Moment ist es eine statische Navigationsleiste (nicht Teil eines Navigationscontrollers), aber es hat vorher und immer noch nicht funktioniert. Was mache ich falsch? Gibt es eine Art Workaround?Navigationsleiste verschwindet, wenn sie programmgesteuert gedrückt wird

Dies ist der Code in der AppDelegate, die ich verwende es zu schieben:

var storyboard = UIStoryboard(name: "Main", bundle: nil) 
var PostView: AnyObject! = storyboard.instantiateViewControllerWithIdentifier("NewView") 

var rootViewController = self.window!.rootViewController as! UINavigationController 
rootViewController.pushViewController(PostView as! UIViewController, animated: true) 

pushViewController ist diejenige, die ich zu schieben bin versucht.

Antwort

7

Auf den View-Controller, die Sie auf der viewDidLoad Methode zu drücken versuchen, versuchen, die Navigationsleiste zu zwingen, nicht, wenn Sie

self.navigationController?.setNavigationBarHidden(false, animated: false) 

Wenn das hilft, überprüfen Sie den View-Controller auf dem Storyboard versteckt werden sind nicht gezwungen, die view-Controller der Navigationsleiste

Hoffnung versteckt, die :) dieses

0

Die rootViewController ist eine UINavigationController. Was auch immer View-Controller, die Sie dagegen drücken, wird die UINavigationBar definiert in dieser UINavigationController verwenden.

Wenn Sie die „automatische“ wollen UINavigationBar, die mit UINavigationController kommt, nur muss eine andere Art von View-Controller als Anfangs eins gesetzt (oder einen Satz ohne View-Controller als initial).

+0

Mein Problem ist nicht, dass ich keinen Nav Controller verwenden möchte. Es ist, dass mein NavController nicht auftaucht. Nur die Ansicht ohne die Navigationsleiste ist. –

+0

Ich will es dort, damit ich zurück zum vorherigen Viewcontroller –

+0

gehen kann Und Sie sind sicher, dass Sie einen UINavigationController als anfängliche Ansicht Controller in Ihrem Storyboard haben? –

1

Versuchen hilft:

var storyboard = UIStoryboard(name: "NewStoryBoard", bundle: nil) 

let vc = storyboard.instantiateViewController(withIdentifier: "NewView") as! UIViewController 

self.navigationController?.pushViewController(vc, animated: true) 
Verwandte Themen