我正在使用 iOS 6 新的方式来分享信息:UIActivityViewController
。要根据媒体(facebook、twitter 或邮件)选择共享数据,我的视图控制器实现UIActivityItemSource
协议如下:
- (IBAction)onShareButton:(UIButton *)sender
{
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMessage, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll];
[self presentViewController:activityViewController animated:YES completion:^{}];
}
#pragma mark - UIActivityItemSource Protocol
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
NSArray *items = @[@"message facebook", [NSURL URLWithString:@"http://www.myUrlFacebook.com"]];
return items;
} else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
NSArray *items = @[@"message twitter", [NSURL URLWithString:@"http://www.myUrlTwitter.com"]];
return items;
} else if ([activityType isEqualToString:UIActivityTypeMail]) {
NSArray *items = @[@"message mail", [NSURL URLWithString:@"http://www.myUrlMail.com"]];
return items;
}
NSArray *items = @[@"Not a proper Activity", [NSURL URLWithString:@"http://www.myUrlMail.com"]];
return items;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return @"PlaceHolder";
}
当我返回一个简单的 NSString 时,我activityViewController:itemForActivityType:
的字符串很好用UIActivityViewController
,但我找不到使用Array
!
根据 Apple 文档,它应该是可能的:
此方法返回要由活动对象操作的实际数据对象 Apple 文档
有没有人用这个UIActivityItemSource
协议和数组一起使用,或者有没有使用完整的教程来做到这一点?
注意:我在控制台上也遇到了这个错误,它可能会有所帮助......
启动服务:注册未知应用标识符 com.apple.mobilemail 失败
启动服务:找不到应用标识符 com.apple.mobilemail