如果您在itemForActivityType
函數中添加跟蹤,您將看到此函數將被多次調用。每個可用於共享的活動一個。
例如 - 如果我想對Twitter和電子郵件/短信共享提供不同的文字我也有這樣的事情:
- (id) activityViewController: (UIActivityViewController*) activityViewController itemForActivityType: (NSString*) activityType {
if (activityType == UIActivityTypePostToTwitter) {
return @"Sharing by Twitter";
}
else
return @"Other kind of sharing";
}
UPDATE:
如果要提供不同類型的數據分享(比如說文字和圖片) - 你需要以一種方式編寫你的佔位符函數,以便在多次調用時返回兩種不同類型的對象。
- (id) activityViewControllerPlaceholderItem: (UIActivityViewController*) activityViewController {
static int step = 0;
if (step == 0) {
step = 1;
return @"text";
}
else if (step == 1) {
step = 2;
return [UIImage imageNamed: @"image"];
}
}
來源
2013-12-20 02:08:08
sha
我不是在談論你提到的方法;我在說 - [UIActivityItemSource activityViewControllerPlaceholderItem:]。這只是似乎只調用一次的方法,而且我顯然無法切換activityType。謝謝。 –
其實在我的測試中'activityViewControllerPlaceholderItem'被多次調用。但你究竟想達到什麼目的? – sha
根據activityType(數據,圖像,文本),我的UIActivityItemSource返回不同類型的對象。但是沒有activityType參數傳入 - [UIActivityItemSource activityViewControllerPlaceholderItem:],那麼如何表達我返回不同類型的數據? –