絶対に挫折しないiPhoneアプリ開発入門Part.28 ~【iOS5】Twitterフレームワークを入れて投稿してみよう~
前回:絶対に挫折しないiPhoneアプリ開発入門Part.27 ~ひとつのUIViewControllerに複数のUIPickerView,UITextField~
今日はTwitterで投稿する機能を実装してみましょう。
動かしている様子は下の画像の通りです。
ツイッターのつぶやき画面になり、テキストフィールドに入力した文字がデフォルトで入っている
実装は簡単です。順に説明します。
StoryboardでEmbed in、からのNavigationControllerへ変更
簡単NavigationControllerですね。今回はNavigationControllerを利用した画面遷移を利用しないのであれですが、いちおう書いてみたというところです。
UITextFieldの設置、Placeholder
UITextFieldを設置します。
また、薄い字で「つぶやきの内容」という文字をテキストフィールドの中に入れました。これはPlaceholderですね。
コードを書きましょう
ViewController.h
#import <UIKit/UIKit.h> #import "Twitter/Twitter.h" //←追加 @interface ViewController : UIViewController <UIActionSheetDelegate,UITextFieldDelegate> //ふたつデリゲート追加 @property (weak, nonatomic) IBOutlet UITextField *tweet_tv; //ひもづけしたやつ @end
ViewController.m
#import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize tweet_tv; - (void)viewDidLoad { [super viewDidLoad]; self.title = @"つぶやこう"; //ナビゲーションバーのタイトル //右上に設置したこのボタンが押されると、appearActionSheetメソッドが実行されます。 UIBarButtonItem *r_btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(appearActionSheet)]; self.navigationItem.rightBarButtonItem = r_btn; tweet_tv.delegate = self; //textFieldShouldReturnメソッドを使うためです。hファイルのデリゲートを忘れずに。 } -(BOOL)textFieldShouldReturn:(UITextField*)textField{ [tweet_tv resignFirstResponder]; //Enterを押したらフォーカスが外れる return YES; } - (void)appearActionSheet { //hファイルでデリゲート UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"キャンセル" destructiveButtonTitle:nil otherButtonTitles:@"Twitterでつぶやく", nil]; [actionSheet showInView:self.view]; } //アクションシートのボタンが複数ある場合は、下記のようにbuttonIndexで条件分岐 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == 0) { //TwitterはTwitter.framework インポートお忘れなく TWTweetComposeViewController *twv = [[TWTweetComposeViewController alloc] init]; [twv setInitialText:tweet_tv.text]; //このtweet_tv.textを書くことで、デフォルト文字が入っている [self presentModalViewController:twv animated:YES]; twv.completionHandler = ^(TWTweetComposeViewControllerResult res) { if (res == TWTweetComposeViewControllerResultDone) { NSLog(@"送りました"); }else if( res == TWTweetComposeViewControllerResultCancelled) { NSLog(@"キャンセルされました"); } [self dismissModalViewControllerAnimated:YES]; }; } } - (void)viewDidUnload { [self setTweet_tv:nil]; [super viewDidUnload]; // Release any retained subviews of the main view. } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } @end
特に取り立てて解説という点も少ないかと思います。
コードの中に書いてあるコメントを読んでみてくださいね。
======================
当ブログ管理人のツイッターはこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
■スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます。
お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!