0
 - (UIViewController *)activityViewController

我创建了一个自定义 UIACtivity,它返回一个显示弹出窗口的视图控制器。这允许用户在执行实际活动之前进行一些编辑。

在 ios 低于 8 的情况下,我的透明背景看起来像一个叠加层(我可以在下面看到我的游戏),但在更新到 ios8 后,背景变为纯灰色。我检查了 UIImageView 显示我的覆盖图像与 alpha 并设置为清除。谁能告诉我为什么背景突然变得坚实?我再也看不到下面的游戏视图了。

这是我的代码:

- (IBAction)didPressShareButton:(id)sender
{
    ...
    [_rootViewController presentViewController:[self getActivityViewController] animated:YES completion:nil];
    ...
}

_rootViewController 是我的应用程序的主视图控制器。
[self getActivityViewController] 返回一个 UIActivityViewController 实例,其中包括我为 instagram 定制的 UIActivity

我的 InstagramUIActivity 覆盖此函数以返回自定义视图控制器(见附图)

- (UIViewController *)activityViewController
{
    dismissalAC = [[InstagramDismissal alloc]init];
    presentationAC = [[InstagramPresentation alloc]init];

    instagramVC = [[InstagramViewController alloc]initWithInstagramPhoto:_instagramPhoto];
    instagramVC.delegate = self;
    if ([instagramVC respondsToSelector:@selector(setTransitioningDelegate:)]) {
        instagramVC.transitioningDelegate = self;
    }

    return instagramVC;
}

dismissalAC 和presentationAC 只是实现UIViewControllerAnimatedTransitioning协议的对象,因此我可以拥有自己的过渡动画。

当我返回我的自定义视图控制器时,它会弹出,但随之而来的是一个白色背景的视图。我不知道为什么。

查看层次结构 在此处输入图像描述

4

2 回答 2

1

尝试

instagramVC.modalPresentationStyle = UIModalPresentationOverFullScreen;

或者

instagramVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
于 2015-07-10T03:12:26.073 回答
0

我在我的应用程序中也遇到了这个问题。

自 iOS 8 起,Apple 禁止子类化或自定义UIActivityViewController.

如果您在您的应用程序上这样做,该应用程序会在您的视图上显示一个叠加层和一个没有任何按钮的空灰列表。在这种情况下,您必须终止您的应用程序才能关闭UIActivityViewController.

为了替换这种行为,我只需创建一个具有相同布局的视图(以编程方式或从情节提要),您可以使其从屏幕底部显示(带有动画)。如果需要,请向我询问一些示例代码。

于 2014-10-13T09:54:03.363 回答