2014-12-22 32 views
1

我的代码在iOS7及以下版本中工作得很好。 但与xcode6和iOS8 UIModalTransitionStylePartialCurl不起作用。视图出现时,页面卷曲在第二部分中消除。UIModalTransitionStylePartialCurl无法在iOS 8上工作

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

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

+0

http://stackoverflow.com/questions/25927199/ios8-uimodaltransitionstylepartialcurl-doesnt-work-properly看起来是同样的问题。那个也没有答案。 – AKG

+0

http://www.openradar.me/18305611 – TonyMkenu

回答

1

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

我有同样的问题,我应用此修复程序,它为我工作在iOS 8和Xcode的6

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

显然,_mapToolbarController将要介绍的控制器。要明白为什么你需要这个,在完成处理程序的行中添加一个断点。做动画,你会在完成处理程序中看到冰壶动画刚刚完成,一切都很完美。出于某种原因,我无法解释,在iOS 8中,您需要告诉iOS框架“保留”卷曲视图并确保它不会被丢弃。完成处理程序中的代码试图将即将消失的卷曲视图“保留”在屏幕上。请注意,在这种情况下,self.view是正在卷曲的视图。

+0

这不适用于UINavigationController类。我得到一个异常说,子视图控制器应该有父控制器X,但父母是Y.其中X是我的视图控制器要呈现和Y是自定义导航控制器类。 – AKG

+0

虽然我不能保证它适用于所有人,但我只是在分享一个潜在的提示。如果你可以找到一种方法来保持你自己的实现视图,就像我对自己做的那样,它可能会工作。 – SmallChess