Открытие View Controller, подключенного к навигационному контроллеру программно

межфа строитель Я использую AKSwiftSlideMenu в качестве основы для приложения.

У меня есть контроллер вида (HomeVC), который подключен к контроллеру навигации.

Если точка входа в раскадровку указывает на HomeVC, то я, конечно, получаю меню, но мое приложение должно запускаться без меню и только после выполнения определенных экранов и задач, я хочу перейти к HomeVC и разрешить пользователю доступ к меню.

Я заметил, что если ai поместить кнопку на стартовом контроллере вида, который не имеет соединения с контроллером навигации, и подключить эту кнопку непосредственно к контроллеру навигации с помощью перетаскивания +cntrl, то нажатие кнопки выведет меня из контроллера вида без меню в HomeVC и показать меню.

Как мне сделать это программно

Заранее благодарю за любую помощь

редактировать: я попробовал следующий код

    let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let newViewController = storyBoard.instantiateViewController(withIdentifier: "Home") as! UINavigationController
    self.present(newViewController, animated: true, completion: nil)

который не сработал в результате со следующей ошибкой

Не удалось привести значение типа "myApp.HomeVC" (0x10a159280) к "UINavigationController" (0x10cc2d3c8).

2 ответа

let newViewController = storyBoard.instantiateViewController(withIdentifier: "Home") as! UINavigationController
s

"Дом" не является UINavigationController. Удалить as! UINavigationController от этой строки и ошибка уйдет.

Спасибо Дэниел за то, что сказал мне создать экземпляр контроллера навигации. Закончилось предоставление навигационного контроллера идентификатора раскадровки с именем ccontroller, и следующий код делает то, что мне нужно

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewController(withIdentifier: "ccontroller") as! UINavigationController
    self.present(vc, animated: true, completion: nil)
Другие вопросы по тегам