我的视图控制器 登录 - >主菜单 - > A - > B - > C - > d
如何调度所有视图控制器并返回主菜单
对于从我的视图控制器注销,我正在执行以下操作,返回登录
@SlingFilter(
label = "Filter Label",
description = "implementation of a Sling Filter",
generateComponent = true,
generateService = true,
order = 0,
scope = SlingFilterScope.REQUEST) // REQUEST, INCLUDE, FORWARD, ERROR, COMPONENT (REQUEST, INCLUDE, COMPONENT)
public class MySlingFilter implements Filter {
////// Implementation
}
现在我正在做的是这个
func logout{
self.view.window!.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
}
答案 0 :(得分:5)
如果你的MainMenu VC总是在你的Login VC之后出现,你可以简单地使用相同的方法:
To MainMenu:
self.view.window!.rootViewController?.presentedViewController?.dismissViewControllerAnimated(true, completion: nil)
答案 1 :(得分:0)
使用展开segue 而不是使用RootViewController。 使用展开,您可以返回任何ViewController。 DismissViewController总是从NavigationController发送控制器。
答案 2 :(得分:0)
您可以使用UINavigationController来推送/弹出视图控制器,而不是呈现/解除。这样你可以使用UINavigationController popToViewController(_:animated:)
,它可以弹出到导航堆栈中的任何视图控制器。
答案 3 :(得分:0)
如果MainMenu不是你的rootViewController,你可以使用Unwind Segue。看看这篇文章,希望它会有所帮助。 Unwind Segue with Swift
答案 4 :(得分:0)
这对我有用,
self.view.window!.rootViewController?.presentedViewController?.dismiss(动画:true,完成:nil)
答案 5 :(得分:0)
Swift 5
这对我有用
var presentingViewController = PresentingViewController()
self.dismiss(animated: false) {
presentingViewController.dismiss(animated: false, completion: nil)
}