2016-01-04 4 views
0

Я пытаюсь открыть свое приложение для определенного ViewController, который глубоко встроен в контроллер навигации, но не является RootViewController. Я пытался в приложении делегат didFinishLaunchingWithOptions добавляющее:Приложение открывается конкретному ViewController внутри контроллера навигации

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) 
    let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let initialViewController = storyboard.instantiateViewControllerWithIdentifier("NavViewController") 
    self.window?.rootViewController = initialViewController 
    self.window?.makeKeyAndVisible() 

Но это идет к контроллеру вида корня. Я попытался изменить эту строку:

storyboard.instantiateViewControllerWithIdentifier("MainViewController") 

и это делает открытой для правильной ViewController но нет панели навигации на вершине, которая необходима для навигации в приложении.

ответ

1

Чтобы получить доступ к rootViewController из AppDelegate то вот код:

let rootViewController = application.windows[0].rootViewController as! UINavigationController 
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
let notificationVC = mainStoryboard.instantiateViewControllerWithIdentifier("identifier") as! NotificationVC 
rootViewController.pushViewController(notificationVC, animated: false) 

Теперь он будет иметь navigationBar. Дайте мне знать, если вы все еще сталкиваетесь с проблемой. Благодарю.

+0

Да, это именно то, что мне нужно. Благодаря! Теперь я пытаюсь сделать аналогичную вещь из View Controller, которая не встроена в контроллер навигации. Есть идеи? – bdc

+0

@bdc Вы просто хотите отобразить или хотите нажать/поп? –

+0

В любом случае. Я полагаю, что push/pop, если это не сложнее. – bdc

Смежные вопросы