UIModalTransitionStylePartialCurl无法在iOS 8上运行

时间:2014-12-22 04:53:45

标签: ios ios7 model-view-controller ios8

我的代码在iOS7及以下版本中运行得非常好。 但是对于xcode6和iOS8,UIModalTransitionStylePartialCurl无效。当视图出现时,页面卷曲以小数秒的形式消失。

MyViewController* opts = [[MyViewController alloc] initWithView:someView];
opts.modalPresentationStyle = UIModalPresentationFullScreen;
opts.modalTransitionStyle = UIModalTransitionStylePartialCurl;
[self presentViewController:opts animated:YES completion:nil];

[编辑] - 我发现如果构建完成xCode5.1并在iOS8上运行,则按预期工作。 xCode6和iOS8构建有问题吗?

1 个答案:

答案 0 :(得分:1)

从评论中的第一个链接复制(我在该帖子中的解决方案)。

我遇到了同样的问题并且我应用了此修复程序,它在iOS 8和Xcode 6上适用于我。

    [_mapToolbarController setModalTransitionStyle:UIModalTransitionStylePartialCurl];
    [self presentViewController:_mapToolbarController animated:YES completion:^{
        [_mapToolbarController.view.superview addSubview:self.view];
    }];

显然,_mapToolbarController将是您要呈现的控制器。要了解您为什么需要这个,请在​​完成处理程序的行中添加断点。做动画,你会在完成处理程序中看到卷曲动画刚刚完成,一切都很好。出于某种原因,我无法解释,在iOS 8中,您需要告诉iOS框架" keep"卷曲的视图,并确保它不会被扔掉。完成处理程序中的代码尝试"保持"即将褪色的卷曲视图进入屏幕。请注意,在此上下文中,self.view是正在卷曲的视图。