Контроллер навигации не отображается при создании программно - PullRequest
0 голосов
/ 12 октября 2019

Я только что обновился до iOS 13 / Xcode 11 и пытаюсь встроить свой UIViewController в UINavigationController, как я это делал в прошлом. ViewController отображается, но мой NavigationController нет. Ниже приведено то, что у меня есть внутри метода didFinishLaunchingWithOptions внутри AppDelegate.

    window = UIWindow()

    let vc = ViewController()
    let navController : UINavigationController = UINavigationController(rootViewController: vc)
    navController.navigationBar.titleTextAttributes = [.foregroundColor : UIColor.black]

    window?.rootViewController = navController
    window?.makeKeyAndVisible()

РЕДАКТИРОВАТЬ: я обнаружил свою ошибку, я пытался создать VC программно, но у меня была раскадровка в качестве «контроллера начального представления». Это полностью игнорировало мой код в appdelegate, хотя я очистил поле «Основной интерфейс» в общих настройках моего проекта.

Я также хочу отметить, что мой код не должен был находиться в appdelegate, вместо этого он должен иметьбыл внутри SceneDelegate. Больше информации об этом здесь: https://medium.com/@ZkHaider/apples-new-uiscene-api-a-programmatic-approach-52d05e382cf2

1 Ответ

0 голосов
/ 12 октября 2019

Возможно, вы можете попробовать использовать идентификатор контроллера навигации

    let destination = storyboard.instantiateViewController(withIdentifier: "--navigation controller identifier--") as! --class name--
    navigationController?.pushViewController(destination, animated: true)
...