Я использую новый способ iOS 6 для обмена информацией: UIActivityViewController
. Чтобы выбрать общие данные в зависимости от носителя (facebook, twitter или mail), мой контроллер представления реализует протокол 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 Documentation, это должно быть возможно:
Этот метод возвращает фактический объект данных, на который должен воздействовать объект активности Документация Apple
Кто-нибудь когда-либо использовал этот UIActivityItemSource
протокол с массивами или использует полный учебник для этого?
Примечание. Я также получил эту ошибку на консоли, это может помочь...
Запуск служб: не удалось зарегистрировать неизвестный идентификатор приложения com.apple.mobilemail
Запуск служб: невозможно найти идентификатор приложения com.apple.mobilemail