我正在使用iOS 6全新方式共享信息:UIActivityViewController
。要選擇不同的媒體(Facebook,Twitter或電子郵件)上的共享數據我的視圖控制器實現UIActivityItemSource
協議如下:UIActivityItemSource Protocole設置複雜對象
- (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";
}
當我回來了activityViewController:itemForActivityType:
一個簡單的NSString字符串很好用我的UIActivityViewController
,但我找不到使用Array
的方法!
根據蘋果的文檔應該可以:
此方法返回的實際數據對象由活動對象採取行動 Apple documentation
有誰曾經使用過這個UIActivityItemSource
議定書數組,還是有一個使用完整的教程來做到這一點?
注:我也得到了控制檯上的錯誤,它可以幫助...
發射服務:註冊未知的應用程序標識符com.apple.mobilemail失敗
發射服務:無法找到應用程序標識符com.apple.mobilemail
你是否發現了關於com.apple.mobilemail的消息在控制檯中? –
控制檯錯誤只出現在模擬器中,其中郵件應用程序根本不存在。它可以被忽略。 – Emil
@Tommecpe:你是怎麼修復它的? – BaSha