如何杀死导航控制器的视图?

时间:2018-04-09 16:51:25

标签: swift view tabbar navigationcontroller

我有一些导航控制器

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)
    }
}

此代码将我返回到没有问题的登录视图,但前面的视图仍然有效,我知道因为有一个视图使用信标的位置功能,并留下一个打印的功能(“测距” “)。 总结:我想返回视图登录(红色框)并杀死我面前的所有视图。

我唯一可以做的就是杀死第一个导航控制器(黄色框),但它会将我返回到后视图,在那里你会看到灰色框。

1 个答案:

答案 0 :(得分:0)

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

self.navigationController.viewControllers = [VC]

或重置rootVC

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