ユーザーが iOS6 の組み込みの「ツイート シート」を介して何かをツイートした後に、特定のアクションをトリガーしたい
ユーザーが「送信」ボタンを押した後にメソッドをトリガーしたい。
あるいは、ツイートが正常に投稿されたという確認を iOS から受け取ることができれば、その時点でメソッドをトリガーしたいと思います。
これらのオプションのいずれかが可能ですか? ユーザーがツイートを投稿した後にアクションをトリガーする別の好ましい方法はありますか?
ユーザーが iOS6 の組み込みの「ツイート シート」を介して何かをツイートした後に、特定のアクションをトリガーしたい
ユーザーが「送信」ボタンを押した後にメソッドをトリガーしたい。
あるいは、ツイートが正常に投稿されたという確認を iOS から受け取ることができれば、その時点でメソッドをトリガーしたいと思います。
これらのオプションのいずれかが可能ですか? ユーザーがツイートを投稿した後にアクションをトリガーする別の好ましい方法はありますか?
-(void)shareViewTwitter:(NSString*)str
{
TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];
// Optional: set an image, url and initial text
[twitter setInitialText:@"Some Text"];
// Show the controller
[self presentModalViewController:twitter animated:YES];
// Called when the tweet dialog has been closed (Here your Action will be triggered)
twitter.completionHandler = ^(TWTweetComposeViewControllerResult result)
{
NSString *title = @"Tweet Status";
NSString *msg;
if (result == TWTweetComposeViewControllerResultCancelled)
// Your Action
msg = @"Tweet compostion was canceled.";
else msg = @"Tweet composition completed."; // Your Action
// Show alert to see how things went...
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title message:msg delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
[alertView show];
// Dismiss the controller
[self dismissModalViewControllerAnimated:YES];
};
}
完了ハンドラを使用します。以下のコード例を参照してください。
SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) {
switch(result) {
// This means the user cancelled without sending the Tweet
case SLComposeViewControllerResultCancelled:
break;
// This means the user hit 'Send'
case SLComposeViewControllerResultDone:
break;
}
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissViewControllerAnimated:NO completion:^{
NSLog(@"Tweet Sheet has been dismissed.");
}];
});
};