如何在iOS 8中关闭两个UIViewControllers?

Ana*_*tam 4 iphone presentmodalviewcontroller presentviewcontroller ios8

我正在使用Objective C处理iPhone应用程序.因为我需要同时关闭两个UIViewControllers,所以我使用下面的代码:

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

此代码在iOS6和iOS7中运行良好,但在iOS8中无效.我已经使用断点检查,我的ViewController viewDidLoad和viewWillAppear方法正在调用,但我的视图根本没有加载,所以作为输出,我得到空白的白色屏幕.任何人都可以帮助我,对于iOS8,我该如何解决这个问题,我是否需要使用presentViewController而不是presentViewController?

Jag*_*een 10

SWIFT代码

@IBAction func goBack(sender: AnyObject) {
    var tmpController :UIViewController! = self.presentingViewController;

    self.dismissViewControllerAnimated(false, completion: {()->Void in
        println("done");
         tmpController.dismissViewControllerAnimated(false, completion: nil);
    });
}
Run Code Online (Sandbox Code Playgroud)


示例项目


Objective-c代码

- (IBAction)goBack:(id)sender {

    UIViewController *trmpVC = self.presentingViewController;

    [self dismissViewControllerAnimated:NO completion:^{
        [trmpVC dismissViewControllerAnimated:NO completion:nil];
    }];
}
Run Code Online (Sandbox Code Playgroud)


示例项目