IOS/Objective-C:UIActivityItemSource协议,用于自定义与UIActivityViewController共享消息

IOS/Objective-C:UIActivityItemSource协议,用于自定义与UIActivityViewController共享消息,ios,objective-c,uiactivityitemprovider,Ios,Objective C,Uiactivityitemprovider,Apple文档说,您可以使用UIActivityItemSource协议来定制与UIActivityViewController共享的消息,而不是UIActivityItemProvider对象: UIActivityItemSource 如果希望从应用程序的现有对象之一提供数据,而不是创建单独的UIActivityItemProvider对象,则可以使用此协议 我已经采用了这个协议,但是,下面这样的委托方法似乎没有启动。有人能证实这一点吗?如果是的话,请指出我可能遗漏了什么?提前感谢您的建议

Apple文档说,您可以使用
UIActivityItemSource
协议来定制与
UIActivityViewController
共享的消息,而不是
UIActivityItemProvider
对象:

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

是的,此委托方法适用于我,并调用委托方法。我使用以下代码创建活动项控制器:

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

而不是在.h文件中使用:NSObject实现协议。您还需要做些什么来设置代理吗?