我有一些导航控制器
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)
}
}
此代码将我返回到没有问题的登录视图,但前面的视图仍然有效,我知道因为有一个视图使用信标的位置功能,并留下一个打印的功能(“测距” “)。 总结:我想返回视图登录(红色框)并杀死我面前的所有视图。
我唯一可以做的就是杀死第一个导航控制器(黄色框),但它会将我返回到后视图,在那里你会看到灰色框。
答案 0 :(得分:0)
如果导航控制器是rootVc,则可以重置它的viewcontrollers属性
self.navigationController.viewControllers = [VC]
或重置rootVC
UIApplication.shared.keyWindow?.rootViewController = // VC