我有一个登录屏幕,需要电子邮件和密码。我正在使用火基身份验证。
登录屏幕嵌入在导航控制器中。从登录屏幕,它转到用户详细信息控制器。导航控制器附带的导航栏中有一个"后退"导航项。我实际上不能把它拖成一个出口。
我想知道是否有一种简单的方法可以单击"返回"并将用户返回到登录页面以注销用户。使用火基身份验证,注销代码相对简单。如果我从用户详细信息控制器返回这里,我遇到的问题是在登录控制器中解决。
我已经阅读了有关使用self.presentingcontroller来确定我从哪个控制器返回的信息,但我一直得到零。而且我不确定这是否是确定我从哪个控制器导航回来的最佳/唯一选项。
谢谢。
看起来很简单。希望这段代码会有所帮助。
-
在viewDidLoad中添加一个这样的函数:
override func viewDidLoad() { super.viewDidLoad() setupLogOut() }
-
然后使用如下选择器处理程序方法设置这样的函数:
fileprivate func setupLogOut() { navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(handleLogOut)) } @objc func handleLogOut() { do { try Auth.auth().signOut() // Present the login controller let loginController = LoginController() let navController = UINavigationController(rootViewController: loginController) self.present(navController, animated: true, completion: nil) } catch let signOutErr { print("Failed to sign out:", signOutErr) } }
如果您不想将方法添加到后退按钮。 您也可以使用以下方法注销:
override func viewWillDisappear(animated: Bool) {
// Your sign out logic here..
}
当您弹出登录控制器时,会调用上述方法。