Как установить начальный viewController в AppDelegate программно? - PullRequest
0 голосов
/ 22 марта 2020

Я знаю, что этот вопрос задавался пару раз, но я попробовал все решения, и у меня ничего не получалось.

В настоящее время я работаю над проектом iOS и столкнулся с проблемой.

Я создаю приложение, которое нуждается в личной информации при первом запуске. Поэтому я использую NavigationController, который я установил как Initial View Controller в раскадровке.

Теперь я хотел бы проверить в своем AppDelegate, вводил ли пользователь уже личные данные. В этом случае я создал User Defaults KV Pair called "onboarding" of type Bool

Если значение равно true, я хотел бы изменить контроллер начального вида на основной TabBarController, остальное приложение использует.

Я надеюсь, что это изображение может проиллюстрировать то, что я имел в виду выше: enter image description here

Я надеюсь, что вы можете придумать способ решить эту проблему.

Большое спасибо За вашу помощь заранее. Хорошего дня!

1 Ответ

1 голос
/ 22 марта 2020

1) Откройте ваш AppDelegate.swift и добавьте свойство

var window: UIWindow?

2) В

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool

a) инициализируйте это окно:

window = UIWindow(frame: UIScreen.main.bounds)

b) установите необходимый вам UIViewController в window rootViewController свойство:

window?.rootViewController = myViewController

c) сделайте этот ключ окна и видимым:

window?.makeKeyAndVisible()

Вот и все. И не забудьте удалить раскадровку из настроек цели: Удалить раскадровку из цели

Надеюсь на ее помощь.

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