データをメールしたりtwitterやfacebookに送れたりする、UIActivityViewControllerの使い方
iOS6から使えるようになった、下記のようなController。勉強会にて「超便利です」と教えてもらったので、使い方をメモ書き。
// 対象のitemをArrayに入れる NSString* testString = @"test string"; UIImage* image = [UIImage imageNamed:@"hogehoge.jpg"]; NSURL* url = [NSURL URLWithString:@"http://d.hatena.ne.jp/tototti+dev/"]; NSArray *activityItems = @[testString, image, url]; // UIActivityViewController UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil]; // 機能ボタン表示を無効にする NSArray *excludedActivityTypes = @[UIActivityTypePrint]; // 印刷ボタンが表示されなくなる activityController.excludedActivityTypes = excludedActivityTypes; // completionHandler 完了時の動作 void (^completionHandler)(NSString *activityType, BOOL completed) = ^(NSString *activityType, BOOL completed){ // メール送信などの動作が完了した時に呼ばれる NSLog(@"completetion handler"); }; activityController.completionHandler = completionHandler; // modalで表示 [self presentViewController:activityController animated:YES completion:^{ // UIActivityViewControllerが表示された時に呼ばれる NSLog(@"presentViewController completion"); }];
標準で用意されているボタン以外に、任意のアプリに対して動作するボタンも作れるらしいのだけど、そのやり方はもうちょっと調べないと・・・。