加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在swift 4中单击导航控制器上的后退导航项时,有一种简单的注销方

发布时间:2020-12-14 17:58:23 所属栏目:百科 来源:网络整理
导读:我有一个登录界面,上面有电子邮件和密码.我正在使用firebase Auth. 登录屏幕嵌入在导航控制器中.从登录屏幕转到UserDetailsController.导航控制器附带的导航栏中有一个“后退”导航项.我实际上无法将其拖成一个出口. 我想知道是否有一个简单的方法来点击“后
我有一个登录界面,上面有电子邮件和密码.我正在使用firebase Auth.

登录屏幕嵌入在导航控制器中.从登录屏幕转到UserDetailsController.导航控制器附带的导航栏中有一个“后退”导航项.我实际上无法将其拖成一个出口.

我想知道是否有一个简单的方法来点击“后退”并且用户返回到登录页面以注销用户.使用firebase Auth,注销代码相对简单.我遇到的问题是在LoginController中工作,如果我从UserDetailsController返回到这里.

我已经阅读了关于使用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)
    }

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读