【问题标题】:How to kill the views of a navigation controller?如何杀死导航控制器的视图?
【发布时间】:2018-04-09 16:51:25
【问题描述】:

我有一些导航控制器

Navigation Controller 1
Navigation Controller 2

当用户注销时(红框),应该回到屏幕登录(黄框) 涉及到两个导航控制器,红框中的第一个必须完全死掉,就像包含的那个标签栏一样。

这是关闭会话按钮的代码。

@IBAction func CerrarSesion(_ sender: Any)
{
    do
    {

        try Auth.auth().signOut()
        let vc = self.storyboard?.instantiateViewController(withIdentifier: "InicioSesionLogin")
        //self.dismiss(animated: true, completion: nil)
        self.present(vc!, animated: true, completion: self.borrarUserDefaults)


    }
    catch let error as NSError
    {
        print (error.localizedDescription)
    }
}

这段代码让我返回登录没有问题的视图,但前面的视图仍在工作,我知道因为有一个视图使用信标的定位功能,并留下一个打印的功能(“测距”)。 总结:我想回到视图登录(红框),杀掉我面前的所有视图。

我唯一能做的就是杀死第一个导航控制器(黄色框),但它会让我回到后视图,您会看到灰色框。

【问题讨论】:

    标签: swift view tabbar navigationcontroller


    【解决方案1】:

    如果导航控制器是 rootVc ,你可以重置它的 viewcontrollers 属性

    self.navigationController.viewControllers = [VC]
    

    或重置rootVC

    UIApplication.shared.keyWindow?.rootViewController = // VC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2013-09-06
      相关资源
      最近更新 更多