某些应用程序会在iOS 6中显示默认操作表,并提供共享选项。如何使用可用的共享选项显示默认iOS 6共享操作表?
Social Framework仅具有两个类,一个用于构成一个用于请求。
我发现虽然是有关撰写与SLComposeViewController特定服务和展示这一点,我必须用手如果服务可查询前。然后我也必须用自己的图标创建我自己的操作表。
如何这些应用表明,该缺省的共享选项的动作片在iOS 6中?还是他们使用开源框架?
某些应用程序会在iOS 6中显示默认操作表,并提供共享选项。如何使用可用的共享选项显示默认iOS 6共享操作表?
Social Framework仅具有两个类,一个用于构成一个用于请求。
我发现虽然是有关撰写与SLComposeViewController特定服务和展示这一点,我必须用手如果服务可查询前。然后我也必须用自己的图标创建我自己的操作表。
如何这些应用表明,该缺省的共享选项的动作片在iOS 6中?还是他们使用开源框架?
在对方的回答中规定的UIActivityViewController使这个微不足道的。您只需指定要共享的文本/图像/ URL并以模态方式呈现活动视图控制器,iOS将自动显示所有适用的共享服务。例子:
- (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];
}
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.flatMap({$0}), applicationActivities: nil)
if UIDevice.current.userInterfaceIdiom == .pad {
activityViewController.popoverPresentationController?.sourceView = view
}
present(activityViewController, animated: true, completion: nil)
}
尼斯编辑为雨燕版。 我会改变+ =项目的.append(item)。看起来更迅速-Y –
在斯威夫特的最新版本,更换'AnyObject []()'和'[AnyObject]()' –
它的工作,只有在登录到各自的账户设置后(在Facebook/Twitter等), 但在照片应用程序/ Notes应用程序中,即使用户未登录,选项也可用, 您能否解释一下,为什么是这样?或者还有其他解决方法? –
添加此使用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];
}
对我的首选答案,因为你也显示排除。 –
我想与像微信,微博,QQ自定义图标打开共享片并整合了它的功能,我怎么能做到这一点? – RaviJSS
只是检查这个环节也.. http://stackoverflow.com/a/35267035/3908884 –
[下面是使用斯威夫特一个基本的例子(http://stackoverflow.com/a/35931947) – Suragch