主视图控制器上的登录和注销身份验证按钮从 'Login' 更改为 'Logout',寻找最佳实践

Login and Logout authentication button to change from 'Login' to 'Logout' on main view controller, looking for best practices

首先....我是 swift 4.0 / Xcode 10.1 的开发新手。我遇到的设计问题是我已经创建了一个带有 firebase 身份验证的登录页面(有效),我目前正在尝试找出设置它的最佳实践,以便我的 'login' 按钮位于右上角填写 firebase 身份验证过程后,页面的更改为 'logout'。我附上了一张应该有帮助的图片。我似乎找不到任何关于此类事物最佳实践的文档......

我的猜测是我设置了第二个视图控制器,但是 'protected' 一旦用户通过身份验证。但是,如果有我不知道的替代/更好的方法来完成这个问题,我会问这个问题?

@IBAction func login(_ sender: UIBarButtonItem) {
    if Auth.auth().currentUser != nil {
    } else {
        let authUI = FUIAuth.defaultAuthUI()
        authUI!.delegate = self
        let providers: [FUIAuthProvider] = [
            FUIGoogleAuth()]

        authUI?.providers = providers
        let authViewController = authUI!.authViewController()
        self.present(authViewController, animated: true, completion: nil)
        }
        do {
            try Auth.auth().signOut()
        } catch let error as NSError {
            print(error.localizedDescription)
        }
    }


}

// 为登录按钮添加变量作为布尔值,然后为登录为真和假的值添加按钮。我现在正在寻求有关如何调用上面的登录功能的帮助。抱歉,我是 swift 4.0 的新手。非常感谢任何帮助

    @IBAction func pressedNavButtonRight(sender: UIBarButtonItem) {
    if isLogin
    {isLogin = false
        self.navigationItem.rightBarButtonItem! = UIBarButtonItem(title: 
"Logout", style: UIBarButtonItemStyle.done, target: self, 
action:"pressedNavButtonRight")
    }
    else
    {
        isLogin = true
        self.navigationItem.rightBarButtonItem! = UIBarButtonItem(title: 
"Login", style: UIBarButtonItemStyle.plain, target: self, 
 action:"pressedNavButtonRight")
    }
}

已解决,我想通了。我能够使用布尔值来获得所需的结果。我可能会 post 稍后为任何感兴趣的人提供代码