【发布时间】:2019-04-30 00:39:54
【问题描述】:
我正在尝试注销并返回登录视图控制器。
所以我创建了一个窗口,设置 rootViewController,然后 makeKeyAndVisible。 (不在 AppDelegate 中)
class AppManager: NSObject {
var window: UIWindow?
func goToLoginPage() {
window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let loginVC = storyboard.instantiateViewController(withIdentifier:
"LoginVC") as! LoginVC
window?.rootViewController = loginVC
window?.makeKeyAndVisible()
}
}
它有效,但我在想前一个窗口会发生什么。它会自动关闭和释放吗?如果没有,我需要这样做吗?
还是直接使用“UIApplication.shared.delegate?.window!!”更好像下面这样而不是创建一个新窗口?
UIApplication.shared.delegate?.window!!.rootViewController = homeVC
【问题讨论】:
-
显示第一组代码中
window变量的来源。 -
我在类中创建了一个变量,如下所示“var window: UIWindow?”
-
你在哪里实际将 UIWindow 实例分配给
window变量? -
抱歉,我已经更新了代码。
-
最好不要那样做。如果只有一个屏幕,您只需要一个 UIWindow。如果问题是一次性登录页面,有更好的方法来解决。