gpt4 book ai didi

ios - 在 Swift 中使用 switch 访问类属性

转载 作者:行者123 更新时间:2023-11-29 05:26:44 24 4
gpt4 key购买 nike

我有以下类(class):

class Router: NSObject {

enum Route {
case auth
case main
case news
}

private var authNavigationController: UINavigationController?
private var mainNavigationController: UINavigationController?
private var newsNavigationController: UINavigationController?

func setInitialVC(){
let vc = LoginService.initialVC()
setRootViewControllerWithNavigationControlledEmbeded(route: .auth,
viewController: vc)
}

private func getCurrentNavC(_ route: Route) -> UINavigationController?{
switch route {
case .auth:
return self.authNavigationController
case .main:
return self.mainNavigationController
case .news:
return self.newsNavigationController
}
}

private func setRootViewControllerWithNavigationControlledEmbeded(route: Route,
viewController: UIViewController){
var navC = getCurrentNavC(route)
self.window = UIWindow(frame: UIScreen.main.bounds)
navC = UINavigationController.init(rootViewController: viewController)
print("auth vc \(authNavigationController)")
print("navC \(navC)")
self.window?.rootViewController = navC
self.window?.makeKeyAndVisible()
}
}

当我打电话时

setRootViewControllerWithNavigationControlledEmbeded(route: Route, viewController: UIViewController){

我认为 var navC = getCurrentNavC(route) 将指向我的类变量 authNavigationController 但在日志中我可以看到以下内容:

auth vc nil
navC Optional(<UINavigationController: 0x7fd9ca025000>)

我想通过路由获取此属性,但看起来我的逻辑不起作用,为什么?

当应用程序刚刚启动时,它调用 - setInitialVC()

最佳答案

像下面这样修改 setRootViewControllerWithNavigationControlledEmbeded 函数并尝试。

private func setRootViewControllerWithNavigationControlledEmbeded(route: Route,
viewController: UIViewController){
var navC = getCurrentNavC(route)
self.window = UIWindow(frame: UIScreen.main.bounds)
//navC = UINavigationController.init(rootViewController: viewController)
print("auth vc \(authNavigationController)")
print("navC \(navC)")
self.window?.rootViewController = navC
self.window?.makeKeyAndVisible()
}

关于ios - 在 Swift 中使用 switch 访问类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097551/

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