我正在为iPad制作一篇文章阅读应用程序.我已经整合了社交分享功能,这意味着用户可以在Facebook上分享文章和谷歌邮件.
我正在使用UIActivityViewController进行共享.
我正在使用UIActivityViewController进行共享.
有一个按钮项,当用户点击该UIActivityViewController打开.我更新Xcode 6
当我运行在模拟器上运行良好但是我运行在iOS 7的真实设备(iPad)上,该应用程序在点击按钮项目崩溃.
这是我的代码:
- (IBAction)ysshareAction:(id)sender { NSURL *linkURL = [NSURL URLWithString:_DetailModal1[4]];//article url NSMutableAttributedString *stringText = [[NSMutableAttributedString alloc] initWithString:_DetailModal1[0]];//_DetailModal1[0] contain article title//// [stringText addAttribute:NSLinkAttributeName value:linkURL range:NSMakeRange(0,stringText.length)]; NSArray * itemsArray = @[[Nsstring stringWithFormat:@"%@",_DetailModal1[0]],[NSURL URLWithString:_DetailModal1[4]]]; NSArray * applicationActivities = nil; UIActivityViewController * AVC = [[UIActivityViewController alloc] initWithActivityItems:itemsArray applicationActivities:applicationActivities]; AVC.popoverPresentationController.sourceView = _webView; [self presentViewController:AVC animated:YES completion:nil]; [AVC setCompletionHandler:^(Nsstring *act,BOOL done) { if([act isEqualToString:UIActivityTypeMail]) { ServiceMsg = @"Mail sent!"; } else if([act isEqualToString:UIActivityTypePostToTwitter]) { ServiceMsg = @"Article Shared!"; } else if([act isEqualToString:UIActivityTypePostToFacebook]) { ServiceMsg = @"Article Shared!"; } else if([act isEqualToString:UIActivityTypeMessage]) { ServiceMsg = @"SMS sent!"; } else if([act isEqualToString:UIActivityTypeAddToReadingList]) { ServiceMsg = @"Added to Reading List"; } else if([act isEqualToString:UIActivityTypecopyToPasteboard]){ ServiceMsg = @"copied Link"; } if ( done ) { UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:ServiceMsg message:@"" delegate:nil cancelButtonTitle:@"ok" otherButtonTitles:nil]; [Alert show]; } }]; }
帮助是赞赏!
解决方法
以下是问题
AVC.popoverPresentationController.sourceView = _webView;
你将不得不放置iOS8的条件popoverPresentationController被引入iOS 8和更高版本,所以你不能使用它与iOS 7
为了检查iOS8,您可以定义从here发现的宏
#define SYstem_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
并以下列方式使用它.
NSURL *linkURL = [NSURL URLWithString:_DetailModal1[4]];//article url NSMutableAttributedString *stringText = [[NSMutableAttributedString alloc] initWithString:_DetailModal1[0]];//_DetailModal1[0] contain article title//// [stringText addAttribute:NSLinkAttributeName value:linkURL range:NSMakeRange(0,stringText.length)]; NSArray * itemsArray = @[[Nsstring stringWithFormat:@"%@",[NSURL URLWithString:_DetailModal1[4]]]; NSArray * applicationActivities = nil; UIActivityViewController * AVC = [[UIActivityViewController alloc] initWithActivityItems:itemsArray applicationActivities:applicationActivities]; if(SYstem_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")){ AVC.popoverPresentationController.sourceView = _webView; } [self presentViewController:AVC animated:YES completion:nil];
有关iOS8中UIActivityViewController的更改信息,请参阅this
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。