2

Apple Docs 说您可以使用该协议来自定义与代替对象UIActivityItemSource共享的消息:UIActivityViewControllerUIActivityItemProvider

UIActivityItemSource

在您想要从应用程序的现有对象之一提供数据而不是创建单独的 UIActivityItemProvider 对象的情况下,您可以使用此协议。

我已经采用了这个协议,但是,像下面这样的委托方法似乎没有被触发。谁能确认这应该有效,如果可以,请指出我可能缺少的东西?在此先感谢您的任何建议。

-(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";
}
}
4

1 回答 1

1

是的,这个委托方法对我有用,并且调用了委托方法。我使用以下代码创建活动项控制器:

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

于 2018-02-27T15:55:29.800 回答