UIActivityViewController 在 iOS 8 中不起作用

Posted

技术标签:

【中文标题】UIActivityViewController 在 iOS 8 中不起作用【英文标题】:UIActivityViewController doesn't work in iOS 8 【发布时间】:2014-11-29 03:23:49 【问题描述】:

我正在使用 UIActivityViewController 为我的应用程序共享一些东西。它适用于 ios8 之前的任何设备。问题是文本,图像在 iOS 8 设备或模拟器中的电子邮件、推特、Facebook 中不显示。

这是我的代码:

    NSString *textObject = @"Test";
    NSString *urlString = @"http://test.com";
    UIImage* image = [UIImage imageNamed:@"logo"];
    NSURL *url = [NSURL URLWithString:urlString];

    NSArray *activityItems = [NSArray arrayWithObjects:textObject, url, image, nil];

    UIActivityViewController *avc = [[UIActivityViewController alloc]
                                     initWithActivityItems:activityItems
                                     applicationActivities:nil];

    avc.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard ];

    [self presentViewController:avc animated:YES completion:nil];

我做错了吗?谢谢。

编辑:

新的 Xcode 6.1 和 iOS 8.1 并没有解决问题。它会导致电子邮件崩溃。以下是部分截图(以邮件分享为例):

    在 iOS 7 中(您可以看到图像)

    在 iOS 8 中(黑屏)

应用程序因“MailCompositionService”异常而崩溃。这 部分错误信息是:

进程:MailCompositionService [3775] 路径: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/Applications/MailCompositionService.app/MailCompositionService 标识符:MailCompositionService 版本: 1.0 (1.0) 代码类型:X86-64 (Native) 父进程:launchd_sim [3725] 负责人:launchd_sim [3725] 用户 ID: 501

日期/时间:2014-10-22 10:31:19.064 +0800 操作系统版本: Mac OS X 10.10 (14A389) 报告版本:11 匿名 UUID: B1EC6B56-DD7F-36A3-1506-B8CE84AB3FEB

自启动以来的唤醒时间:9800 秒

崩溃的线程:0 调度队列:com.apple.main-thread

异常类型:EXC_CRASH (SIGABRT) 异常代码: 0x0000000000000000, 0x0000000000000000

应用程序特定信息: * 由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'* -[NSRegularExpression enumerateMatchesInString:options:range:usingBlock:]: nil argument' 以调用的 NSException abort() 类型的未捕获异常终止 CoreSimulator 110.4 - 设备:iPhone 6 - 运行时:iOS 8.1 (12B411) - 设备类型:iPhone 6

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。但是我的略有不同。我可以在没有任何可用操作的情况下展示控制器。 :/ 我已经删除了所有排除的类型,希望我能看到任何但失败的类型。我猜这是最新版本的 xcode 6.1 和 iOS8 的另一个错误。

【讨论】:

【参考方案2】:

在真实设备中似乎是正确的,但在模拟器中却不正确。

【讨论】:

我遇到了类似的崩溃,只是发送一封电子邮件(在 iOS8 模拟器中),代码在 iOS7 中有效。 MFMailComposeViewController 显示,但缺少某些字段(例如,收件人)。然后在大约 3 秒后它像上面一样崩溃。这似乎是一个模拟器错误,可能与邮件有关。

以上是关于UIActivityViewController 在 iOS 8 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色