iOS:用于presentViewControllers体系结构的popToRootViewController

时间:2012-03-28 17:59:36

标签: ios presentmodalviewcontroller poptoviewcontroller

我知道如果我的项目中有navigationController,我可以使用popToRootViewController,但我的整个项目都是基于presentViewControllers,并且我有一个导航到多个级别的场景。如果只有一个级别,我可以通过关闭当前视图控制器返回到根视图控制器,但是当我达到多个级别时,我无法弄清楚如何导航回根视图控制器。有人可以在这里建议我吗?

我尝试使用以下代码,但我的应用程序崩溃了!

- (IBAction)mainMenuButtonPressed:(id)sender {
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    [self presentModalViewController:delegate.window.rootViewController animated:YES];
}

感谢。

2 个答案:

答案 0 :(得分:4)

如果我理解你,那么你将呈现几个模态视图控制器,并希望返回到根视图控制器。如果这是正确的,那么以下代码应该适合您:

- (IBAction)mainMenuButtonPressed:(id)sender {
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    [delegate.window.rootViewController dismissModalViewControllerAnimated:YES];
}

答案 1 :(得分:0)

Swift版本

var = APP_DELEGATE = UIApplication.sharedApplication().delegate as! AppDelegate
APP_DELEGATE.window?.rootViewController?.dismissViewControllerAnimated(true, completion: nil)

Swift3

let APP_DELEGATE = UIApplication.shared.delegate as! AppDelegate
            APP_DELEGATE.window?.rootViewController?.dismiss(animated: true, completion: nil)