Маршрутизация к определенному контроллеру представления от делегата приложения. стриж

Эта ссылка должна дать вам некоторую подсказку. Назначение stdafx.h

Строки, определенные до #include "stdafx.h", игнорируются компилятором. Поэтому, если вы хотите включить эти файлы, вам необходимо включить их после #include "stdafx.h".

Надеюсь, что это понятно.

0
задан Andrew Harris 3 March 2019 в 22:33
поделиться

1 ответ

Если я вас правильно понимаю, вы хотите запустить свое приложение в состоянии, когда оно находится в контроллере целевого представления. Этот ответ не применяется, если приложение уже запущено.

Прежде всего, вам нужно создать экземпляр контроллера панели вкладок. Это вернет всю иерархию, которую вы создали в файле раскадровки. Свойство viewControllers вашего UITabBarController будет содержать три UINavigationController, которые вы настроили для своих разных вкладок. Первый навигационный контроллер - тот, который связан с вашей домашней вкладкой. Затем вы можете манипулировать свойством viewControllers объекта UINavigationController, чтобы изменить начальный стек контроллеров представления. UINavigationController всегда будет отображать последний, поэтому в этом примере thirdVc - это тот, который показан на домашней вкладке.

func setupAppFromDeeplink() {
    let tabBarController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "tabBar") as! UITabBarController
    let homeNavigationController = tabBarController.viewControllers?.first as! UINavigationController

    let firstVc = UIViewController() 
    let secondVc = UIViewController()
    let thirdVc = UIViewController()

    homeNavigationController.viewControllers = [firstVc, secondVc, thirdVc]

    window!.rootViewController = tabBarController
}

Вы не сможете передавать данные через сегменты с этим подходом, как и вы. Назначьте данные, которые будут отображаться в контроллере вида при настройке firstVc и т. Д.

0
ответ дан Oscar Apeland 3 March 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: