Могу ли я сохранить модально представленный контроллер вида при настройке контроллера вида root? - PullRequest
0 голосов
/ 28 января 2020

Допустим, у меня есть три контроллера вида. На первом я нажимаю кнопку и представляю второй контроллер вида модально. На втором я нажимаю кнопку и сохраняю контроллер представления представления (первый), затем устанавливаю третий контроллер представления как контроллер вида root. Наконец, у меня есть кнопка на третьем контроллере вида, которая захватывает сохраненный контроллер и устанавливает его как контроллер вида root.

Когда я восстанавливаю первый контроллер вида, я обнаруживаю, что его свойство presentedViewController ноль. Интересно, смогу ли я сохранить стек навигации и получить модал, представленный при восстановлении первого контроллера представления?

В этом примере для простоты я храню контроллер представления внутри AppDelegate.

Код :

FirstViewController.swift

    @IBAction func presentViewController(_ sender: Any) {
        let storyboard = UIStoryboard(name: "SecondVC", bundle: nil)
        let controller = storyboard.instantiateViewController(withIdentifier: "Second")
        present(controller, animated: true, completion: nil)
    }
SecondViewController.swift

    @IBAction func secondButtonCLick(_ sender: Any) {
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        appDelegate.savedVC = presentingViewController

        let storyboard = UIStoryboard(name: "Third", bundle: nil)
        let controller = storyboard.instantiateViewController(withIdentifier: "ThirdVC")

        UIApplication.shared.keyWindow?.rootViewController = controller
    }
ThirdViewController.swift

    @IBAction func thirdBtnTouch(_ sender: Any) {
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let rootVC = appDelegate.savedVC
        UIApplication.shared.keyWindow?.rootViewController = rootVC
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...