iPhoneアプリ開発の虎の巻
HOME > UIActionSheet

UIActionSheet

UIActionSheetクラスは、アクションシートを管理するクラスです。
アクションシートはユーザに択一で選択させたい時や、処理を実行してもよいか確認させたい時などに使用されます。

アクションシート

UIActionSheetのクラス階層

NSObjectUIResponderUIView ↑ UIActionSheet

生成

// 生成例
UIActionSheet *as = [[UIActionSheet alloc] init];

UIActionSheetのプロパティ

【UIActionSheetの主要プロパティ】
プロパティ名/型 読専 説明
delegate
(UIActionSheetDelegate)
デリゲートを指定する
(例)as.delegate = self;
title
NSString
タイトルを指定する
(例)as.title = @"選んでください。";
cancelButtonIndex
(NSInteger)
キャンセルボタンの位置を指定する(0から)
(例)3つめのボタンをキャンセルボタンとする
 as.cancelButtonIndex = 2;
destructiveButtonIndex
(NSInteger)
赤くするボタンの位置を指定する(0から)
(例)1つめのボタンを赤ボタンとする
 as.destructiveButtonIndex = 0;
actionSheetStyle
(UIActionSheetStyle)
アクションシートのスタイルを設定する
 UIActionSheetStyleDefault:グレー
 UIActionSheetStyleBlackOpaque:黒色
 UIActionSheetStyleBlackTranslucent:透過黒色
(例)as.actionSheetStyle = UIActionSheetStyleBlackOpaque;
numberOfButtons
(NSInteger)
ボタンの数を取得する
(例)int cnt = as.numberOfButtons;

主要なプロパティのみ掲載しています。
 上記「UIActionSheetのクラス階層」にあるクラスのプロパティも使用できます。

UIActionSheetのメソッド

【UIActionSheetの主要メソッド】
メソッド名 説明
-(NSInteger)addButtonWithTitle:
(NSString *)title
ボタンを追加する
(例)[as addButtonWithTitle:@"ぼたん"];
-(void)showInView:
(UIView *)view
アクションシートを表示する
(例)[as showInView:self.view];
-(void)showFromTabBar:
(UIView *)view
TabBarがある時にアクションシートを表示する
(例)[as showFromTabBar:self.view];
-(void)showFromToolbar:
(UIView *)view
Toolbarがある時にアクションシートを表示する
(例)[as showFromToolbar:self.view];

主要なメソッドのみ掲載しています。
 上記「UIActionSheetのクラス階層」にあるクラスのメソッドも使用できます。

UIActionSheetのデリゲートメソッド

【UIActionSheetDelegate】
メソッド名 説明
-(void)willPresentActionSheet:
(UIActionSheet*)actionSheet
表示直前に呼ばれるメソッド
-(void)actionSheet:
(UIActionSheet*)actionSheet
didDismissWithButtonIndex:
(NSInteger)buttonIndex
閉じた直後に呼ばれるメソッド
-(void)actionSheet:
(UIActionSheet*)actionSheet
clickedButtonAtIndex:
(NSInteger)buttonIndex
ボタンタップ時に呼ばれるメソッド
buttonIndexにタップされたボタンの番号が渡されてくる

主要なデリゲートメソッドのみ掲載しています。

UIActionSheetの使用例

// アクションシート例文
UIActionSheet *as = [[UIActionSheet alloc] init];
as.delegate = self;
as.title = @"選択してください。";
[as addButtonWithTitle:@"実行"];
[as addButtonWithTitle:@"やめとく"];
[as addButtonWithTitle:@"キャンセル"];
as.cancelButtonIndex = 2;
as.destructiveButtonIndex = 0;
[as showInView:self.view];  // ※下記参照

タブバーがある画面からActionSeetを表示させる場合は、
[as showInView:self.view.window]; とします。
こうしないとボタンが反応する場所がおかしくなってしまいます。


// アクションシートのボタンが押された時に呼ばれるデリゲート例文
-(void)actionSheet:(UIActionSheet*)actionSheet
        clickedButtonAtIndex:(NSInteger)buttonIndex {

  switch (buttonIndex) {
    case 0:
    // 1番目のボタンが押されたときの処理を記述する
    break;
  case 1:
    // 2番目のボタンが押されたときの処理を記述する
    break;
  case 2:
    // 3番目のボタンが押されたときの処理を記述する
    break;
  }

}
totop