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;
			}
		}
	}
}