[英]Override UIActivityViewController to switch out to Facebook app (for Open Graph stories)
有可能:)只需創建一個新類 - 讓我們說FacebookActivityItem:
// .h
@protocol FacebookActivityItemDelegate <NSObject>
- (void)facebookItemWasSelected;
@end
@interface FacebookActivityItem : NSObject<UIActivityItemSource>
@property (nonatomic, weak) id <FacebookActivityItemDelegate> delegate;
@end
// .m
@implementation FacebookActivityItem
/// called to determine data type. only the class of the return type is consulted. it should match what -itemForActivityType: returns later
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return UIActivityTypePostToFacebook;
}
/// called to fetch data after an activity is selected. you can return nil.
- (nullable id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
if (self.delegate != nil) {
[self.delegate facebookItemWasSelected];
}
}
return nil;
}
@end
現在在你的UIViewController中,將這個實例添加到UIActivityViewController:
FacebookActivityItem *fbActivityItem = [FacebookActivityItem new];
fbActivityItem.delegate = self;
self.activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[fbActivityItem] applicationActivities:nil];
現在在UIViewController中實現方法-facebookItemWasSelected並告訴它它實現了FacebookActivityItemDelegate。 在這個方法中,只需關閉activityViewController並使用FacebookSDK實現自定義表單!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.