Как модально нажать два контроллера представления, не видя первый

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

Я прочитал это post, но ответы сосредоточены на использовании навигационного контроллера, в то время как я хочу модально представить второй контроллер представления.

Пример использования: мой первоначальный VC проверяет, вошел ли пользователь в систему, и представляет VC для входа, если нет. Если да, он отображает основной VC. При выходе из системы я должен иметь возможность вернуться к входу в ВК.


person Hugal31    schedule 24.01.2018    source источник


Ответы (1)


Подходящим решением будет сначала представить второй контроллер представления и представить первый только после того, как второй полностью появится.

Инициалвиевконтроллер

let secondVc = storyboard!.instantiateViewController(withIdentifier: "Second") as! SecondViewController
secondVc.initialVc = self
present(secondVc, animated: true)

SecondViewController

fileprivate var firstViewDidAppearTime = true
var initialVc: InitialViewController!

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    if firstViewDidAppearTime {
        firstViewDidAppearTime = false

        let firstVc = storyboard!.instantiateViewController(withIdentifier: "First")
        initialVc.present(firstVc, animated: false)
    }
}
person Tamás Sengel    schedule 24.01.2018
comment
Но у меня нет навигационного контроллера! - person Hugal31; 24.01.2018
comment
Я получил предупреждение: попытка представить ‹firstViewContainer› на ‹baseViewContainer›, чье представление не находится в иерархии окон! - person Hugal31; 24.01.2018
comment
Я имел в виду firstViewController и baseViewController - person Hugal31; 24.01.2018