Używam iOS 6 nowy sposób udostępniania informacji: UIActivityViewController
. Aby wybrać udostępnione dane w zależności od mediów (Facebook, Twitter lub mail) mój widok kontroler wdrożyć UIActivityItemSource
protokół następująco:UIActivityItemSource Protocole zestaw złożonych obiektów
- (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";
}
Kiedy wracam prosty NSString dla activityViewController:itemForActivityType:
łańcuch jest dobrze wykorzystane przez moich UIActivityViewController
, ale nie mogę znaleźć sposobu na użycie Array
!
Według Apple dokumentacji powinno być możliwe:
Ta metoda zwraca rzeczywisty obiekt danych należy działał przez przedmiot działalności Apple documentation
Czy ktoś kiedykolwiek użyć tej UIActivityItemSource
Protokół z Arrays, czy też jest do tego pełny samouczek?
Uwaga: Ja też mam ten błąd na konsoli, może pomóc ...
uruchamiania Usługi: Rejestrowanie nieznanego identyfikatora aplikacji com.apple.mobilemail udało
uruchomienia usługi: nie można znaleźć identyfikator aplikacji com.apple.mobilemail
Czy dowiedziałeś się, co ten komunikat o com.apple.mobilemail znajduje się w konsoli? –
Błąd konsoli występuje tylko w symulatorze, w którym aplikacja pocztowa po prostu nie istnieje. Można go zignorować. – Emil
@Tommecpe: Jak to naprawiłeś? – BaSha