Выполните Segue из ViewController, который не открыт - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть фоновая задача, которая запускается из AppDelegate, когда она должна отображать уведомления.

Когда эти уведомления касаются, они должны направлять пользователя к ViewController, который относится к уведомлению.

Мне было интересно, можно ли выполнять сегменты из AppDelagate.

Мои контроллеры ViewController находятся в контроллере навигации.Я предполагаю, что мне нужно создать экземпляр моего корневого контроллера представления и выполнить там переход, но я не уверен, как это сделать из appdelegate.

Редактировать: Вот мой код, пока он работаетон просто не встроен в мой навигационный контроллер

 if let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ConversationVC") as? conversationTableViewController {
            if let window = self.window, let rootViewController = window.rootViewController {
                var currentController = rootViewController
                while let presentedController = currentController.presentedViewController {
                    currentController = presentedController
                }
                currentController.present(controller, animated: true, completion: nil)
            }
        }

1 Ответ

0 голосов
/ 18 сентября 2018

Вы не можете перейти от раскадровки, которая еще не загружена.

В зависимости от вашего случая вы можете:

1: отправлять данные из AppDelegate в первоначальный корневой контроллер представления вашей текущей раскадровки и оттуда создавать несколько сегментов в респектабельном виртуальном канале в зависимости отdata.

ИЛИ

2: Создайте несколько раскадровок (по одной для каждого случая) и запустите соответствующие из AppDelegate в соответствии с уведомлением.

Редактировать: Нужно увидеть раскадровку.Для переменной добавьте ее в dialogTableViewController и настройте непосредственно перед ее представлением:

controller.myVar = "someValue"
self.window.rootViewController = controller
self.window.makeKeyAndVisible()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...