Добавить текущий viewcontroller в navigationControllerStack - PullRequest
0 голосов
/ 16 января 2019

хорошо, так что у меня 2 ВК.

С vc1 я перехожу на vc2, используя segue

Теперь из vc2 я хочу перейти на vc2, используя следующий код

let vc = storyboard?.instantiateViewController(withIdentifier: screenId)
        navigationController?.pushViewController(vc!, animated: true)

Он не работает, поскольку VC2 не был добавлен в стек контроллера навигации.

Я хочу знать, как программно добавить VC2 в стек контроллера навигации. Дело в том, что в некоторых случаях я использую segue, а в некоторых других использую контроллер представления.

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Возможно, что navigationController = nil

Так что, если это так, то вам нужно встроить контроллер вида в контроллер вида навигации.

В этом случае UINavigationContoller должен быть вашим корневым контроллером представления. Пожалуйста, проверьте ваш корневой контроллер просмотра.

0 голосов
/ 16 января 2019

Вы можете попробовать это:

let loginVc = storyboard?.instantiateViewController(withIdentifier: screenId)
let aObjNavi = UINavigationController(rootViewController: loginVc)
let appDelegate: AppDelegate = (UIApplication.shared.delegate as? AppDelegate)!
appDelegate.window?.rootViewController = aObjNavi

застраховано от

let vc = storyboard?.instantiateViewController(withIdentifier: screenId)
navigationController?.pushViewController(vc!, animated: true)

Это может вам помочь. Спасибо.

0 голосов
/ 16 января 2019

Поскольку ваш VC1 не встроен в NavigationController. Перейдите на Storyboard вставьте свой первый VC1 на NavigationController и измените ваш переход с modal / presentation на show. Затем вы можете выдвинуть столько стэков, сколько вам нужно в стеке навигации.

How to Embed A ViewController in Navigation Controller

Change Segue from modal/presentation to SHOW

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...