我有一个视图控制器,但在 viewDidLoad()
方法中,我调用了另一个名为 authenticateUserAndConfigureView()
的方法,当当前用户为 nil 时,它会显示另一个视图控制器。但是,它会稍微延迟显示 - 它首先加载主视图控制器,然后从 authenticateUserAndConfigureView()
方法加载第二个。
这是为什么?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
authenticateUserAndConfigureView()
setUpElements()
}
func setUpElements() {
// Style the elements
Utilities.styleFilledButton(signUpButton)
Utilities.styleHollowButton(loginButton)
}
func authenticateUserAndConfigureView() {
if Auth.auth().currentUser == nil {
print("No user signed in..")
} else {
print("User is already signed in.")
let navController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "HomeNVC")
navController.modalPresentationStyle = .fullScreen
self.present(navController, animated: true, completion: nil)
}
}
答案 0 :(得分:0)
您可以在viewWillAppear
内插入这一行
override func viewWillAppear(_ animated:Bool) {
super.viewWillAppear(animated)
authenticateUserAndConfigureView()
}
OR 在展示 MainVC 之前进行此检查,并根据它展示合适的 vc