- (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
协议的对象,所以我可以拥有自己的过渡动画。
当我返回自定义视图控制器时,它会弹出,但随之而来的是带有白色背景的视图。我不知道为什么。
答案 0 :(得分:1)
试
instagramVC.modalPresentationStyle = UIModalPresentationOverFullScreen;
或
instagramVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
答案 1 :(得分:0)
我的应用也遇到了这个问题。
自iOS 8起,Apple禁止继承或自定义UIActivityViewController
的子视图。
如果您在自己的应用上执行此操作,该应用会在您的视图上显示叠加层,并在没有任何按钮的情况下显示空灰色列表。在这种情况下,您必须终止您的应用以关闭UIActivityViewController
。
要替换此行为,我只需创建一个具有相同布局的视图(以编程方式或从故事板中创建),然后您可以从屏幕底部(带动画)显示该视图。如果需要,请问我一些示例代码。