如何在iOS中激活时关闭任何弹出式视图控制器?

问题描述:

我有一些ViewControlls的设置,信息等。 用户可以关闭应用程序设置ViewController打开(我的意思是弹出ViewController)。 当收到本地通知时,我希望应用程序转到根视图控制器并关闭任何弹出窗口。如果VC你想回去也不需要任何特殊的初始化,因为此方法创建它的一个新实例如何在iOS中激活时关闭任何弹出式视图控制器?

编辑 这个答案是唯一的好。记住这一点。

试试这个方法,它会在你的视图控制器的堆栈中删除任何东西,做具体的视图控制器呈现在屏幕上:

func dismissAllAndNavigate(){ 


    let appDelegate = UIApplication.shared.delegate as! AppDelegate 
    let window = appDelegate.window 
    let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let rootController = mainStoryboard.instantiateViewController(withIdentifier: "some identifier") as! UIViewController 
    window?.rootViewController = rootController 

}

只要确保故事板的名称是正确并定义该故事板中视图控制器的标识符。

+0

请记住,此方法**创建根视图控制器的新实例**。 – the4kman

+0

这是真的,当你的vc没有进行特殊的初始化时,这真的很好,这意味着它总是一样的(就像一个只适用于不同vc之间导航的vc) – Eyzuky