ios - UIActivityViewController 在 iPad 上不工作? iOS 8

标签 ios objective-c ipad uiactivityviewcontroller

我遵循了类似 SO 问题的建议,但似乎无法完成这项工作。我正在开发一款游戏,它会报告最后的得分,然后为最后的得分提供一个分享按钮。

这适用于 iPhone,而我的 iPad 代码如下所示则无效。我一点击“分享”按钮,iPad 版本就崩溃了。此代码来自 this tutorial on Coding Explorer .

iPad 代码(不起作用)

- (IBAction)shareButton:(id)sender;
{
    NSString * text = [NSString stringWithFormat:@"I just scored %li in Flying Freddy. Think you can beat it? https://itunes.apple.com/app/id1033007818", (long)_score];

NSArray *objectsToShare = @[text];

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                               UIActivityTypePrint,
                               UIActivityTypeAssignToContact,
                               UIActivityTypeSaveToCameraRoll,
                               UIActivityTypeAddToReadingList,
                               UIActivityTypePostToFlickr,
                               UIActivityTypePostToVimeo];

activityVC.excludedActivityTypes = excludeActivities;

[self presentViewController:activityVC animated:YES completion:nil];
}

iPhone 代码(有效)

- (IBAction)ShareIt {

    NSString * text = [NSString stringWithFormat:@"I just scored %li in Flying Freddy. Think you can beat it? https://itunes.apple.com/app/id1033007818", (long)_score];

    NSArray * activityItems = @[text];
    UIActivityViewController * avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    avc.excludedActivityTypes = @[ UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll];

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

最佳答案

您必须添加源 View 。

尝试添加这一行:

activityVC.popoverPresentationController.sourceView = self.view;

你也可以添加箭头方向:

activityVC.popoverPresentationController.permittedArrowDirections = UIPopoverArrowDirectionRight;
activityVC.popoverPresentationController.sourceView = sender;

关于ios - UIActivityViewController 在 iPad 上不工作? iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404782/

相关文章:

iphone - 是否可以在 iOS5 中使用 Twitter API 发布照片?

ios - Swift 3.0 中的 Spotify SDK : how to know when a song ends

ios - mdl-js-ripple-effect 破坏了 iOS 13.2(测试版)上的 MDL 按钮

ios - EKEventEditViewController 打开速度非常慢

iphone - 使用串行队列时更新 UI

ios - 为什么我应该将我的应用程序升级到 iOS 5?

ios - 在商店中安装应用程序之前打开应用程序商店页面

ios - 自动布局中的 viewDidLayoutSubviews 在 UIPageViewController 上旋转

ios - 为 UITableView 设置背景图像会占用内存并卡住应用程序

iphone - 如何在 iPad App 中绘制带发光效果的线条