我有这些协议方法,
activityViewControllerPlaceholderItem:
和 activityViewController:itemForActivityType:
但他们永远不会被召唤.我如何告诉UIActivityViewController
他们打电话给他们?
我也有一个UIActivityItemProvider
子类,但我很困惑谁调用这两个方法.我真的很感激一些示例代码,因为我在网上找不到任何东西.:)
小智 26
你可以在任何你想要的地方实现协议,甚至你的viewcontroller都可以.只需实例化activityViewController即可initWithActivityItems:@[self]
.
Sih*_*vic 19
JotWee的答案帮助了我.
不需要子类,UIActivityItemSource
可以在实现共享按钮的视图控制器中实现协议方法.
添加self
活动项数组非常重要,就像这样(如JotWee建议的那样):
NSArray *activityItems = [NSArray arrayWithObjects:self, url, image, nil];
Run Code Online (Sandbox Code Playgroud)
这是我的最终实施:
ViewController.h
@interface ViewController : UIViewController <UIActivityItemSource>
Run Code Online (Sandbox Code Playgroud)
ViewController.m
- (void)shareBarButtonItemClick:(UIBarButtonItem *)sender
{
NSURL *url = [NSURL URLWithString:@"http://example.com"];
NSURL *imageUrl = [NSURL URLWithString:@"http://example.com/images/1.jpg"];
UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
NSArray *activityItems = [NSArray arrayWithObjects:self, url, image, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType
{
return @"Summary Text";
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController
{
return @"";
}
- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType
{
return @"Subject";
}
Run Code Online (Sandbox Code Playgroud)
Nie*_*els 16
根据文件.传递给的活动项数组
-initWithActivityItems:applicationActivities:
可以是数据对象数组,如字符串或图像,也可以是实现UIActivityItemSource
协议的对象数组.
如果传递实现UIActivityItemSource
协议的对象数组,那么您的实例UIActivityViewController
将在您的活动项上调用这些方法.这些对象不一定必须是子类UIActivityItemProvider
.UIActivityItemProvider
只是一个符合这个协议的类.
归档时间: |
|
查看次数: |
15181 次 |
最近记录: |