我有以下设置:
AuthVC ||导航器=> TabBarContr => MainVC / SecondVC
=> SettingsVC
在我的AuthVC中,我检查用户是否登录。如果是,我只需打开我的Navigator类,该类是NavigationViewController
,并且将我的“ TabBarContr”作为rootview。那里我有两个TabBarItems。在我的TabBarContr
的导航栏中,有一个“设置”按钮可以打开我的SettingsVC
。在那里,我有一个logout
按钮。按下该按钮后,我注销并想要杀死除authVC
-Controller之外的所有内容,以便此时可以重新打开我的login-VC。
我在做什么:
当按下logout
时,我从我的SettingsVC
链接回我的TabBarContr
。我在那里打dismissViewController
。
我认为这会起作用,因为我真的回到了AuthVC
。但是,再次登录后,它打开了我的TabBarContr
,在加载内容时遇到了一些问题,因为某些对象仍在我以前的登录会话中仍然存在。
那我该怎么做才能真正杀死除AuthVC
以外的所有东西?
答案 0 :(得分:1)
将AuthVC设置为窗口的rootViewController。
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
从情节提要中实例化AuthVC并将其分配给窗口的rootViewController
appDelegate.window?.rootViewController = AuthVC
答案 1 :(得分:1)
“ ...但是再次登录后,它将打开我的TabBarContr,加载时出现了一些问题...”
如果我了解您要删除每个视图,但是您的问题是您的视图控制器未正确重启。您可能有一些保留的引用,因此您在重用vc对象,然后在第二次显示它们时遇到一些问题。尝试查看关闭/弹出后哪些参考没有发布。
答案 2 :(得分:0)
或者您可以通过settingsVC中的下一个代码为窗口设置根视图控制器:
//Did tap logout button
self.view.window?.rootViewController = AuthVC
如果这对您没有帮助,请在AuthVC之后发送您如何精确显示NavigationViewController。
答案 3 :(得分:0)
尝试一下
DELETE