2015-05-31 4 views
8

Я работаю над приложением некоторое время, и он выталкивает контроллер вида из AppDelegate. Когда панель навигации, которая ранее была нажата, исчезает. Сейчас это статическая навигационная панель (не часть навигационного контроллера), но она была ранее и все еще не работала. Что я делаю не так? Есть ли какое-то обходное решение?Навигационная панель исчезает при программном программировании

Это код в AppDelegate, что я использую, чтобы подтолкнуть его:

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 это один я пытаюсь нажать.

ответ

7

На контроллере представления, что вы пытаетесь толкать, по методу viewDidLoad, попытаться заставить навигационную панель, чтобы не быть скрыты

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

Если это помогает, проверьте контроллер представления на раскадровке, если вы «повторно не заставляя контроллер представления в скрывающую навигационной панели

Надежда, что помогает :)

0

rootViewController является UINavigationController. Какой бы контроллер, который вы нажимаете на него, будет использовать UINavigationBar, определенный в этом UINavigationController.

Если вы не хотите, чтобы «автоматизированный» UINavigationBar, который поставляется с UINavigationController, просто должен установить какой-либо другой тип контроллера представлений в качестве начального (или не установить контроллер представления как начальный).

+0

Моя проблема не в том, что я не хочу использовать контроллер Nav. Это то, что мой NavController не появляется. Только вид без навигационной панели. –

+0

Я хочу его там, чтобы я мог вернуться к предыдущему диспетчеру просмотра –

+0

И вы уверены, что у вас есть UINavigationController в качестве начального контроллера представлений в вашей раскадровке? –

1

Попробуйте это:

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

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

self.navigationController?.pushViewController(vc, animated: true) 
Смежные вопросы