草庐IT

IOS/objective-C : UIActivityItemSource Protocol for customizing share messages with UIActivityViewController

coder 2024-01-22 原文

Apple 文档说您可以使用 UIActivityItemSource 协议(protocol)来自定义与 UIActivityViewController 共享的消息,以代替 UIActivityItemProvider 对象:

UIActivityItemSource

You can use this protocol in situations where you want to provide the data from one of your app’s existing objects instead of creating a separate UIActivityItemProvider object.

我已经采用了这个协议(protocol),但是,如下所示的委托(delegate)方法似乎没有触发。任何人都可以确认这应该有效,如果是这样,请指出我可能缺少的东西?提前感谢您的任何建议。

-(NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(UIActivityType)activityType
{
    NSLog(@"DELEGATE METHOD CALLED");//Not logging to console 

    if (activityType == UIActivityTypeMessage) {
        return @"My message";
    } else if (activityType == UIActivityTypeMail) {
        return @"My email text";
    }
else {
    return @"My default text";
}
}

最佳答案

是的,这个委托(delegate)方法对我有用,调用了委托(delegate)方法。我使用以下代码创建事件项 Controller :

NSArray *theItems = @[ self ];
UIActivityViewController *theController = [[UIActivityViewController alloc] initWithActivityItems:theItems applicationActivities:nil];

theController.popoverPresentationController.barButtonItem = self.shareButton;
theController.excludedActivityTypes = @[ UIActivityTypeAssignToContact,
    UIActivityTypeSaveToCameraRoll, UIActivityTypePostToFlickr,
    UIActivityTypePostToVimeo, UIActivityTypeAirDrop ];
[self presentViewController:theController animated:YES completion:NULL];

其中 self 实现了 UIActivityItemSource

关于IOS/objective-C : UIActivityItemSource Protocol for customizing share messages with UIActivityViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49012660/

有关IOS/objective-C : UIActivityItemSource Protocol for customizing share messages with UIActivityViewController的更多相关文章

随机推荐