拜托,如果我犯错误,你能告诉我吗?
NSString *sharedMsg=[NSString stringWithFormat:@"Hello world"];
UIImage* sharedImg=[UIImage imageNamed:@"image"];
NSArray* sharedObjects=[NSArray arrayWithObjects:sharedMsg, sharedImg, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:sharedObjects applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
在运行时,当我选择Facebook的图标时,文本丢失,图像被正确显示.
我的xcode是6.3.1,在iPad上测试过.
我想使用UIActivityViewController分享简单的文本我使用swift,使用xcode 6.3代码非常简单,非常适合照片,但不仅仅是文本,我不想包含任何带有objectsToShare的web URL,只是干净的文本这是代码:
var objectsToShare: ["some text to share"]!
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
//handler for completed task
activityVC.completionHandler = {(activityType, completed:Bool) in
if !completed {
println("cancelled")
return
}
reportCompleted() //report to server it's done.
}
//Excluded Activities Code
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeCopyToPasteboard ]
//activate the share view
self.presentViewController(activityVC, animated: true, completion: {
(complete) in
println(complete)
})
Run Code Online (Sandbox Code Playgroud)
现在我知道这一切都取决于用户有Facebook - 不仅在他的手机上,而且在他的设置上.(我直接从我的手机6尝试了这个,它有Facebook设置,而不是来自模拟器)这个代码曾经工作正常,仍然适用于图像,而不是文本,但由于某种原因,它停止工作文本共享,也许文本本身有关,也许我的代码不好,或者Facebook,改变一些东西.
感谢您对此主题的任何想法.
为了让事情更奇怪,我发现了两件更奇怪的事情.
//有效的代码:
var myWebsite = NSURL(string: "http://www.someurl.com/")
let textToShare = "Swift is awesome! Check …Run Code Online (Sandbox Code Playgroud) 我正在使用本机UIActivityViewController共享NSString和NSURL
用户既可以在"设置"中登录Facebook,也可以在Facebook应用程序中登录
但是在iOS 8.3之后我得到了这个错误...而且,在旧设备上,对话框确认被键盘遮挡,无法确认或拒绝

UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:applicationActivities];
NSArray *excludeActivities = @[UIActivityTypeAssignToContact];
vc.excludedActivityTypes = excludeActivities;
if (IsUserInterfaceIdiomPad) {
vc.popoverPresentationController.sourceView = self.navigationController.view;
}
[self.navigationController presentViewController:vc animated:YES completion:^{
}];
Run Code Online (Sandbox Code Playgroud)