首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模态UIViewController使用UIActivityController后显示为黑色

模态UIViewController使用UIActivityController后显示为黑色
EN

Stack Overflow用户
提问于 2014-06-04 20:12:04
回答 1查看 102关注 0票数 0

底部读取我的编辑

在我的应用程序中,我有一个UIViewController,它经常显示一个模态UIViewController。这是没有问题的

代码语言:javascript
复制
-(void)flash
{   
    [self performSegueWithIdentifier:SEGUE_IDENTIFIER sender:self];
}
-(void)stopFlash
{
    [self dismissViewControllerAnimated:YES completion:nil]
}

然而,当用户点击共享按钮,取消共享对话框(只是取消或其他)和第一个模态UIViewController应该再次出现,它只是显示一个黑色的屏幕。但是正确的模态UIViewController是实例化的,我可以在NSLogs中看到它。当点击“共享”按钮时,我使用以下操作:

代码语言:javascript
复制
- (IBAction)share:(id)sender
{
    self.shareButton.hidden = YES;
    [self.buttonActivity startAnimating];

    dispatch_queue_t queue = dispatch_queue_create("background", NULL);
    dispatch_async(queue, ^{
        NSURL *url = APP_URL;
        NSString *message = SHARE_MESSAGE;
        NSArray *activities = [NSArray arrayWithObjects:message, url, nil];
        UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:activities applicationActivities:nil];
        activity.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList];
        };
        self.shareController = activity;
        dispatch_async(dispatch_get_main_queue(), ^{
            [self.buttonActivity stopAnimating];
            self.shareButton.hidden = NO;
            [self presentViewController:self.shareController animated:YES completion:nil];
        });
    });
}

编辑:经过更多的研究后,我发现这个问题属于UIColor类别,但我仍然无法解决。我在UIColor上有一个分类UIColor,有一个方法:

代码语言:javascript
复制
+(UIColor *)randomColor
{
    CGFloat hue = ( arc4random() % 256 / 256.0 );
    CGFloat saturation = ( arc4random() % 128 / 256.0 ) + 0.5;
    CGFloat brightness = ( arc4random() % 128 / 256.0 ) + 0.5;
    UIColor *color = [UIColor colorWithHue:hue saturation:saturation brightness:brightness alpha:1];
    NSLog(@"color: %@", color);
    return color;
}

此方法通常只返回一个随机颜色,该颜色设置为UIView上的背景。由于某些原因,在我第一次打开的情况下,UIActivityViewController``randomColor只返回零。实际上,方法中的NSLog甚至没有被执行,所以甚至没有调用randomColor方法。为什么?这太疯狂了。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 20:46:45

找到了解决方案: UIActivityViewController在UIColor上定义了一个私有randomColor方法,它覆盖了我的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24046713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档