2015-05-31 3 views
8

Ho lavorato su un'applicazione per un po 'di tempo e spinge un controller di visualizzazione dall'AppDelegate. Quando fa la barra di navigazione che era in precedenza sul controller della vista che viene spinto scompare. In questo momento è una barra di navigazione statica (non parte di un controller di navigazione), ma è stata precedentemente e ancora non ha funzionato. Che cosa sto facendo di sbagliato? C'è una sorta di soluzione alternativa?La barra di navigazione scompare quando viene spinto a livello di programmazione

Questo è il codice che AppDelegate che sto usando a spingerlo:

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 è quello che sto cercando di spingere.

risposta

7

Sul controller della vista che si sta tentando di spingere, sul metodo viewDidLoad, cercare di forzare la barra di navigazione per non essere nascosto

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

Se questo aiuta, controllare il controller della vista sullo storyboard, se si non stiamo forzando il controller vista nasconde la barra di navigazione

Speranza che aiuta :)

0

Il rootViewController è un UINavigationController. A prescindere dal controller di visualizzazione che si utilizza, verrà utilizzato lo UINavigationBar definito in tale UINavigationController.

Se non si desidera che il "automatizzata" UINavigationBar che viene fornito con UINavigationController, solo deve impostare qualche altro tipo di controller della vista, come quella iniziale (o un insieme senza controller della vista come iniziale).

+0

Il mio problema non è che non voglio usare un controller Nav. È che il mio NavController non viene visualizzato. Lo è solo la vista senza barra di navigazione. –

+0

Lo voglio lì così posso tornare al precedente viewcontroller –

+0

E sei sicuro di avere un UINavigationController come controller di visualizzazione iniziale nello storyboard? –

1

Prova questo:

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

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

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