iOS5でも使えるUIActivityViewControllerの代替ライブラリ。
FacebookやTwitterの他、tumblrやpokcetなども用意されている。
こんな感じで使いたいActivityのインスタンスを作ってコントローラーを呼び出す。
REFacebookActivity *facebookActivity = [[REFacebookActivity alloc] init]; RETwitterActivity *twitterActivity = [[RETwitterActivity alloc] init];データはNSDictionary経由で渡す。
activityViewController.userInfo = @{ @"image": [UIImage imageNamed:@"Flower.jpg"], @"text": @"Hello world!", @"url": [NSURL URLWithString:@"https://github.com/romaonthego/REActivityViewController"], @"coordinate": @{@"latitude": @(37.751586275), @"longitude": @(-122.447721511)} };
ActivityはREActivityのサブクラスにしてinitを作るだけ。
- (id)init { return [super initWithTitle:@"Copy" image:[UIImage imageNamed:@"REActivityViewController.bundle/Icon_Copy"] actionBlock:^(REActivity *activity, REActivityViewController *activityViewController) { [activityViewController dismissViewControllerAnimated:YES completion:nil]; NSDictionary *userInfo = activityViewController.userInfo; NSString *text = [userInfo objectForKey:@"text"]; UIImage *image = [userInfo objectForKey:@"image"]; NSURL *url = [userInfo objectForKey:@"url"]; if (text) [UIPasteboard generalPasteboard].string = text; if (url) [UIPasteboard generalPasteboard].URL = url; if (image) { NSData *imageData = UIImageJPEGRepresentation(image, 0.75f); [[UIPasteboard generalPasteboard] setData:imageData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]]; } }]; }
ライセンス:MIT
CococaPod対応