[XCODE] iPhone アクションシートを利用する
iPhoneアプリ開発で、今日はアクションシートの使い方を覚えたので、ブログにも書いておきたいと思います。どっかに書かないと忘れてしまうものでwww。
iPhoneアプリで使われるアクションシートとは、以下のようなものです。
<<アクションシート例>>
ボタンクリックや何かのイベントに良く現れて、ユーザーに次のアクションを選択させる事のできるインターフェースです。
このアクションシートを利用するには以下のクラスを利用します。
○ UIActionSheet
・・・アクションシートを表現するクラス
○ UIActionSheetDelegate
・・・アクションシートのデリゲートクラス。
アクションシートを作成し開くコードは以下です。
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"Choose" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"save", @"mail", @"upload", nil]; [sheet showInView:self.view]; [sheet release];
引数の設定内容は引数の名前の通りです。表示したいボタンは、otherButtonTitlesに指定します。destructiveButtonTitleは「破壊的ボタン名」という日本語訳となるでしょうか、特にユーザーに注意を促したいボタン名を指定します。destrukctiveButtonTitleは赤色でボタンが表示されます。
アクションシートを閉じるコードは以下です。
[actionSheet dismissWithClickedButtonIndex:buttonIndex animated:YES];
アクションシートのボタンが押された際に何か処理を行いたい場合には、「UIActionSheetDelegate」の「actionSheet:clickedButtonAtIndex:」メソッドをオーバーライドします。実装例は以下です。
- (void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { [actionSheet dismissWithClickedButtonIndex:buttonIndex animated:YES]; switch (buttonIndex) { case 0: // save [self save]; break; case 1: // mail [self mailImage]; break; case 2: // upload [self upload]; break; default: break; } }
ここでは、アクションシートを閉じた後に、ボタンに応じた動作をさせるメソッドを呼び出しています。buttonIndexは、アクションシートに表示されたボタンの上から「0, 1, 2 ,・・・」となります。
以上、カンタンな使い方メモでした。