Ios 如何关闭所有在swift中以模式显示在彼此前面的视图控制器?
因此,我有一个主视图控制器,视图控制器将显示在彼此前面,我希望当用户单击最后一个视图控制器中的按钮时,关闭所有显示的modally视图控制器,因此我使用了此代码,但没有得到结果Ios 如何关闭所有在swift中以模式显示在彼此前面的视图控制器?,ios,swift,presentmodalviewcontroller,unwind-segue,dismissviewcontroller,Ios,Swift,Presentmodalviewcontroller,Unwind Segue,Dismissviewcontroller,因此,我有一个主视图控制器,视图控制器将显示在彼此前面,我希望当用户单击最后一个视图控制器中的按钮时,关闭所有显示的modally视图控制器,因此我使用了此代码,但没有得到结果 let destination = matchViewController() let appDelegate:UIApplicationDelegate = UIApplication.shared.delegate! let initialViewController = destination let naviga
let destination = matchViewController()
let appDelegate:UIApplicationDelegate = UIApplication.shared.delegate!
let initialViewController = destination
let navigationController = UINavigationController(rootViewController: initialViewController)
appDelegate.window??.rootViewController = navigationController
appDelegate.window??.makeKeyAndVisible()
我想使用unwind segue退出,但还有另一个问题
最后一个视图控制器将在许多不同的情况下多次出现,因此我只想忽略中所有以模态方式显示的视图控制器。这种情况
我不想使用navigationController,但如果我必须使用它,请告诉我应该在哪里使用它?两个选项:
self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
func dismissAllControllers() {
guard let vc = self.presentingViewController else { return }
while (vc.presentingViewController != nil) {
vc.dismiss(animated: true, completion: nil)
}
}
关闭所有视图控制器,直到它有一个presentingController。这是如何工作的?您需要在最后一个视图控制器按钮上调用此操作确定主页面中的某些视图控制器存在问题,在此之前,我不想关闭它们。我只想关闭视图控制器,直到显示MainViewController。您可以添加一个检查在while loop中的
mainViewController
上,我不能这样做,Xcode不允许我这样做