UIActionSheetを表示する。
UIViewControllerでボタンを押した時に、自分自身をdelegate先に指定してUIActionSheetを表示する。まずは、UIActionSheetのプロキシー(Javaで言う所のインターフェース)をUIViewControllerのヘッダーファイル(.h)に設定する。
//EditViewController.h @interface EditViewController : UIViewController <UIActionSheetDelegate>{ } - (IBAction) pushMenu:(id) sender; @end
次に、ボタンを押した時の処理で、UIActionSheetを作成し、delegate先を自分自身(self)に指定する。otherButtonを増やしたいときは、カンマ(,)で区切り追加する。otherButtonの最後はnilで終わるようにする事。
//EditViewController.m - (IBAction) pushMenu:(id) sender { UIActionSheet* sheet; sheet = [[UIActionSheet alloc] initWithTitle:@"Menu" delegate:self cancelButtonTitle:@"Cnacel" destructiveButtonTitle:@"Save" otherButtonTitles: @"Load", @"Settings", nil]; [sheet autorelease]; [sheet showInView:self.view]; }
最後に、UIActionSheetのボタンが押された時の処理を追加する。
//EditViewController.m - (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { NSLog(@"index:%d", buttonIndex); if (actionSheet.title == @"Menu") { switch(buttonIndex) { case 0: { //Save NSLog(@"Save"); break; } case 1: { //Load NSLog(@"Load"); break; } case 2: { //Settings NSLog(@"Settings"); break; } } } }