gpt4 book ai didi

ios - Swift 实例化ViewControllerWithIdentifier

转载 作者:搜寻专家 更新时间:2023-11-01 05:59:28 25 4
gpt4 key购买 nike

目前我有:1.初始ViewController——AppStateViewController2.TabBarController-AuthorizedSessionViewController3. ViewController - UnauthorizedSessionViewController

AppStateViewController 代码 - https://gist.github.com/nspavlo/de7a03f80e57694a12ba

如果我在 viewDidLoad() 中调用 switchToAuthorizedSessionViewController() 和 switchToUnauthorizedSessionViewController(),则会出现 AuthorizedSessionViewController 而不是 UnauthorizedSessionViewController。

我的目标是在 didFinishLaunchingWithOptions 上加载正确的 Controller ,并在 appState 更改时更改它。

最佳答案

为什么在你的应用程序中使用 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)
}
}

有了这个,您将观察属性 authorized 并且每次您更改它时,它都会调用正确的方法。

关于ios - Swift 实例化ViewControllerWithIdentifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25914744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com