如何在加载主视图控制器之前呈现视图控制器?

时间:2021-01-07 15:45:05

标签: ios swift xcode viewcontroller

我有一个视图控制器,但在 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)

        
        
    }

}

1 个答案:

答案 0 :(得分:0)

您可以在viewWillAppear内插入这一行

override func viewWillAppear(_ animated:Bool) {
   super.viewWillAppear(animated)
   authenticateUserAndConfigureView()
}

OR 在展示 MainVC 之前进行此检查,并根据它展示合适的 vc