介绍了标签栏控制器后,我无法关闭标签栏控制器。 重新安装而不删除应用程序后,我什至无法点击我的按钮。需要卸载并重新安装该应用程序,然后我可以点击按钮
我已经尝试了其他方法来关闭标签栏控制器,但是仍然无法关闭控制器。
这是我当前登录后显示控制器的方式
let storyboard = UIStoryboard.init(name: "Main", bundle: Bundle.main)
let loginVC = storyboard.instantiateViewController(withIdentifier: "Home")
self.present(loginVC, animated: true, completion: nil)
这是我当前解雇控制器的方式
@IBAction func btnLogout_TouchUpInside(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
这是我的根视图
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
if defaults.bool(forKey: "isLoggedIn") {
// Show Home screen
window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "Home")
} else {
// Show Login screen
window?.rootViewController = storyboard.instantiateViewController(withIdentifier: "Login")
}
window?.makeKeyAndVisible()
答案 0 :(得分:0)
尝试关闭所有可能对您有用的控制器
DispatchQueue.main.async {
self.view.window!.rootViewController?.dismiss(animated: true, completion: {
print("All controller dismissed successfully..")
})
}
答案 1 :(得分:0)
尝试一下
self.presentingViewController?.dismiss(animated: true, completion: nil)
答案 2 :(得分:0)
嗯。尽管我仍然不确定发生了什么,但您的更新有所帮助。我的猜测是您将登录名设置为root,然后显示主页。但是我不确定您要在哪里或什么解雇。如果是登录名,则没有什么可忽略的,因为它是根视图控制器。
我的建议是重新配置情节提要。因为您是手动呈现视图控制器,所以我将假定情节提要板在控制器之间不包含任何标记。我建议添加并使用它们。
我将主视图控制器设置为初始视图控制器,并将主故事板设置为要在应用程序设置中加载的故事板。然后,可以删除所有用于加载情节提要和设置根视图控制器的代码。
接下来,我将从主页视图控制器到登录视图控制器进行手动模式选择。然后,在主视图控制器的viewDidAppear中,添加代码以确定是否需要登录,并由他们执行登录segue。
然后,您可以在登录视图控制器中执行关闭操作,它将删除模型登录视图。
这只是执行此操作的许多方法之一,但这几乎是使您前进的最简单方法。您不需要任何代码即可加载或设置根视图控制器或其他任何东西。它只是让情节提要为您完成工作。