自定义UIActivity ViewController背景图像透明度不起作用

时间:2014-10-13 08:48:59

标签: objective-c ios8 xcode6 uiactivityviewcontroller uiactivity

 - (UIViewController *)activityViewController

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

当ios低于8时,我的背景透明度看起来像叠加层(我可以在下面看到我的游戏)但是在更新到ios8之后,背景变成纯色灰色。我检查了UIImageView用alpha显示我的叠加图像,并设置为清除。有人能告诉我为什么背景会突然变得坚固吗?我再也看不到我的游戏视图了。

这是我的代码:

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

_rootViewController是我的应用程序的主视图控制器 [self getActivityViewController]返回一个UIActivityViewController实例,其中包含我自定义的UIActivity for Instagram

我的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协议的对象,所以我可以拥有自己的过渡动画。

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

View hierarchy enter image description here

2 个答案:

答案 0 :(得分:1)

instagramVC.modalPresentationStyle = UIModalPresentationOverFullScreen;

instagramVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;

答案 1 :(得分:0)

我的应用也遇到了这个问题。

自iOS 8起,Apple禁止继承或自定义UIActivityViewController的子视图。

如果您在自己的应用上执行此操作,该应用会在您的视图上显示叠加层,并在没有任何按钮的情况下显示空灰色列表。在这种情况下,您必须终止您的应用以关闭UIActivityViewController

要替换此行为,我只需创建一个具有相同布局的视图(以编程方式或从故事板中创建),然后您可以从屏幕底部(带动画)显示该视图。如果需要,请问我一些示例代码。