iOS8 – 呈现模态视图会删除子视图

我正在更新我们的应用程序以使用
xcode6 / iOS8进行编译.

我遇到的一个问题是当呈现模态视图时.基础子视图已删除.它完全被涂黑了..直到模态视图被解除..然后它重新出现.

iOS8中有没有人碰到这个?自iOS4以来,相同的代码已经运行.

码:

    PigDetailViewController *pigDetailViewController = [[PigDetailViewController alloc] initWithNibName:@"PigDetailViewController" bundle:nil];

    self.navigationController.modalPresentationStyle = UIModalPresentationCurrentContext;
    self.navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;


    [self presentViewController:pigDetailViewController animated:YES completion:nil];

最佳答案 在iOS 8中,他们添加了一种新的表示风格,其行为类似于您所描述的环境中的UIModalPresentationCurrentContext,它是UIModalPresentationOverCurrentContext.这里的问题是,与UIModalPresentationCurrentContext不同,您希望将视图控制器设置为使用此演示文稿样式进行演示,如下所示:

PigDetailViewController *pigDetailViewController = [[PigDetailViewController alloc] initWithNibName:@"PigDetailViewController" bundle:nil];
pigDetailViewController.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.navigationController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:pigDetailViewController animated:YES completion:nil];

请注意,要支持iOS 7及更低版本,您可能需要检查操作系统版本并决定如何基于此呈现视图控制器.

编辑:我想再补充一点.在带有UIModalPresentationCurrentContext的iOS7中,当呈现的VC被解除时,底层VC的viewDidAppear方法被调用.在带有UIModalPresentationOverCurrentContext的iOS8中,我发现底层VC没有调用viewDidAppear方法,当它上面显示的VC被解除时.

点赞