Откройте ViewController из быстрых действий, но оставьте tabBarController в делегате приложения - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь использовать App Delegate, чтобы открыть контроллер представления, в зависимости от того, какое быстрое действие было выбрано, но я хочу оставить вкладку Bar Controller внизу. Мой код на данный момент:

    func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
    let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
    let tabBarController = storyboard.instantiateViewController(withIdentifier: "TabBar") as! UITabBarController

    let CLLViewC = storyboard.instantiateViewController(withIdentifier: "CLL")
    let OLLViewC = storyboard.instantiateViewController(withIdentifier: "OLLStoryboard")
    let PLLViewC = storyboard.instantiateViewController(withIdentifier: "PLL")

    let desiredVC = storyboard.instantiateViewController(withIdentifier: "OLLStoryboard")

    tabBarController.viewControllers = [CLLViewC, OLLViewC, PLLViewC]
    if shortcutItem.type == "com.LukeB.Cubing-practice.OLL" {
        OLLViewC.present(desiredVC, animated: true, completion: nil)
        print("present")
    }
}

Это не работает, и я получаю ошибку Attempt to present <Cubing_practice.OLLViewController: 0x105803810> on <Cubing_practice.OLLViewController: 0x103f03c50> whose view is not in the window hierarchy! Оператор if доступен, хотя, как консоль говорит «присутствует», но ViewController, который открывается, когда я нажимаю быстрое действие, используется по умолчанию, как если бы я только что открыл приложение в обычном режиме.

Что мне нужно сделать, чтобы это исправить?

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