Cuối cùng tôi tìm thấy một người đang đối mặt với cùng một vấn đề hơn tôi.Phân lớp và sử dụng UIActivityItemProvider với UIActivityViewController
UIActivityViewController customize text based on selected activity
Tôi muốn tùy chỉnh chia sẻ nội dung với các hoạt động của UIActivityViewController. Câu trả lời tốt là như sau:
"Thay vì đi qua các chuỗi văn bản vào initWithActivityItems cuộc gọi, vượt qua trong riêng sub-class của bạn của lớp UIActivityItemProvider và khi bạn thực hiện phương pháp itemForActivityType nó sẽ cung cấp sự dịch vụ chia sẻ dưới dạng thông số 'activityType'.
Sau đó, bạn có thể trả về nội dung tùy chỉnh từ phương pháp này. "
Tôi hiểu thủ đoạn, nhưng tôi không nhận được cách để làm điều đó ...
Tôi đã làm điều này như một lớp con:
@interface SharingItems : UIActivityItemProvider
@implementation SharingItems
-(id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
// Here depending on the activityType i want to share NSString or UIImage
}
@end
Nhưng tôi không biết phải làm gì bây giờ trong viewController ban đầu của tôi:
-(void)actionSheet
{
if ([[UIActivityViewController class] respondsToSelector:@selector(alloc)])
{
__block NSString *imgName = [[NSString alloc] initWithFormat:@"%@", _sharingUrl];
NSArray *activityItems = [NSArray arrayWithObjects:imgName, nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityController animated:YES completion:nil];
__block NSString *chan = [[NSString alloc] initWithFormat:@"%@", _channel];
[activityController setCompletionHandler:^(NSString* activityType, BOOL completed)
{
if (completed)
{
}
}];
}
else
[self displayActionSheet];
}
Làm thế nào để bạn trả lại nhiều hình ảnh/video thông qua phương pháp 'mục' này? – Suran