Ответ 1
Почему вы используете switchToAuthorizedSessionViewController() в своем Метод switchToViewController():
func switchToViewController(identifier: String) {
let viewController = self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as UIViewController
self.navigationController?.setViewControllers([viewController], animated: false)
**switchToAuthorizedSessionViewController()**
}
Вы создадите с ним бесконечный цикл, попробуйте следующее:
class AppStateViewController: UIViewController {
var authorized: Bool = false {
didSet {
if authorized {
switchToAuthorizedSessionViewController()
} else {
switchToUnauthorizedSessionViewController()
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.authorized = false
}
func switchToAuthorizedSessionViewController() {
let sessionViewControllerID = "AuthorizedSessionViewController"
switchToViewController(sessionViewControllerID)
}
func switchToUnauthorizedSessionViewController() {
let sessionViewControllerID = "UnauthorizedSessionViewController"
switchToViewController(sessionViewControllerID)
}
func switchToViewController(identifier: String) {
let viewController =self.storyboard?.instantiateViewControllerWithIdentifier(identifier) as UIViewController
self.navigationController?.setViewControllers([viewController], animated: false)
}
}
с этим вы будете наблюдать свойство авторизованное, и каждый раз, когда вы его меняете, он вызывается правильным методом.