2011/11/28更新

[XCODE] iPhone アクションシートを利用する

このエントリーをはてなブックマークに追加            

iPhoneアプリ開発で、今日はアクションシートの使い方を覚えたので、ブログにも書いておきたいと思います。どっかに書かないと忘れてしまうものでwww。

iPhoneアプリで使われるアクションシートとは、以下のようなものです。

<<アクションシート例>>

f:id:yoheiM:20110213160343p:image

ボタンクリックや何かのイベントに良く現れて、ユーザーに次のアクションを選択させる事のできるインターフェースです。

このアクションシートを利用するには以下のクラスを利用します。

○ 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 ,・・・」となります。

以上、カンタンな使い方メモでした。







こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。