【问题标题】:UIModalTransitionStylePartialCurl not working on iOS 8UIModalTransitionStylePartialCurl 在 iOS 8 上不起作用
【发布时间】:2015-02-20 04:51:34
【问题描述】:

我的代码完全适用于 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 构建有问题吗?

【问题讨论】:

标签: ios ios7 model-view-controller ios8


【解决方案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 是被卷曲的视图。

【讨论】:

  • 这不适用于 UINavigationController 类。我收到一个异常,说子视图控制器应该有父控制器 X,但父控制器是 Y。X 是我要呈现的视图控制器,Y 是自定义导航控制器类。
  • 虽然我不能保证它对每个人都有效,但我只是分享一个潜在的提示。如果您能像我对自己所做的那样找到一种方法将视图保留在您自己的实现中,那么它可能会起作用。
猜你喜欢
  • 1970-01-01
  • 2015-05-20
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-08
相关资源
最近更新 更多