如何显示具有可用共享选项的默认iOS 6共享操作表



一些应用程序在iOS 6中显示带有共享选项的默认操作表。

SocialFramework只有两个类,一个用于编写,另一个用于请求。

不过,我发现的是使用SLComposeViewController为特定服务进行组合,在显示之前,我必须手动查询该服务是否可用。然后我还必须用自己的图标创建自己的动作表。

这些应用程序如何在iOS 6中显示此默认的股票期权操作表?或者他们使用的是开源框架?

在另一个答案中声明的UIActivityViewController使这变得微不足道。您所要做的就是指定要共享的文本/图像/URL,并以模式显示活动视图控制器,iOS将自动显示所有适用的共享服务。示例:

目标-C

- (void)shareText:(NSString *)text andImage:(UIImage *)image andUrl:(URL *)url
{
NSMutableArray *sharingItems = [NSMutableArray new];
if (text) {
[sharingItems addObject:text];
}
if (image) {
[sharingItems addObject:image];
}
if (url) {
[sharingItems addObject:url];
}
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:sharingItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
}

Swift

func share(sharingText: String?, sharingImage: UIImage?, sharingURL: URL?) {
let sharingItems:[AnyObject?] = [
sharingText as AnyObject,
sharingImage as AnyObject,
sharingURL as AnyObject
] 
let activityViewController = UIActivityViewController(activityItems: sharingItems.compactMap({$0}), applicationActivities: nil)
if UIDevice.current.userInterfaceIdiom == .pad {
activityViewController.popoverPresentationController?.sourceView = view
}
present(activityViewController, animated: true, completion: nil)
}

添加此项以使用UIActivityViewController

-(IBAction)shareButtonPressed:(id)sender {
NSLog(@"shareButton pressed");
NSString *texttoshare = _txt; //this is your text string to share
UIImage *imagetoshare = _img; //this is your image to share
NSArray *activityItems = @[texttoshare, imagetoshare];    
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypeAssignToContact, UIActivityTypePrint];
[self presentViewController:activityVC animated:TRUE completion:nil];
}

最新更新