UIActionSheet
UIActionSheetクラスは、アクションシートを管理するクラスです。
アクションシートはユーザに択一で選択させたい時や、処理を実行してもよいか確認させたい時などに使用されます。
UIActionSheetのクラス階層
生成
// 生成例
UIActionSheet *as = [[UIActionSheet alloc] init];
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のメソッド
メソッド名 | 説明 |
---|---|
-(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のデリゲートメソッド
メソッド名 | 説明 |
---|---|
-(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;
}
}