第1步:建立一個名為"UIActionSheet_UIActionSheetDelegate"的"Single View Application"專案
第2步:加入一個UILabel與UIButton,並為UILabel設立名為label的IBOutlet,為UIButton的"Touch Up Inside"事件加上"touch:"方法。以便後續透過UIButton產生UIActionSheet物件,並在使用者選取後,將選取的項目顯示在UILabel上。
第3步:為"ViewController"加上"UIActionSheetDelegate" protocol協定,以擁有處理UIActionSheet工作項目被選取後的處理。
- 3.1 為"ViewController"加上"UIActionSheetDelegate" protocol協定,於UIViewController後方加上"<UIActionSheetDelegate>"
@interface ViewController : UIViewController <UIActionSheetDelegate>
@property (strong, nonatomic) IBOutlet UILabel *label;
- (IBAction)touch:(id)sender;
@end
@property (strong, nonatomic) IBOutlet UILabel *label;
- (IBAction)touch:(id)sender;
@end
- 3.2 於"ViewController.m"檔中實作 "– actionSheet:clickedButtonAtIndex:"方法,處理。
- (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex
{
//取得UIActionSheet被點選按鈕上的文字
NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];
//將文字顯示在UILabel上
[self.label setText:title];
}
clickedButtonAtIndex:(NSInteger)buttonIndex
{
//取得UIActionSheet被點選按鈕上的文字
NSString *title = [actionSheet buttonTitleAtIndex:buttonIndex];
//將文字顯示在UILabel上
[self.label setText:title];
}
第4步:於"touch:"方法中建立UIActionSheet。並透過"initWithTitle:delegate:cancelButtonTitle:destructiveButtonTitle:otherButtonTitles:"方法設定按鈕,並指派選取按鈕後處理後續作業的委派物件,當然這個委派物件必須符合"UIActionSheetDelegate"protocol協定。
- (IBAction)touch:(id)sender {
//initWithTitle => UIActionSheet的標題文字
//delegate => 符合UIActionSheetDelegate protocol協助的物件,
// 用以處理使用者選取按鈕後的工作,
// 在此以ViewController物件(self)作為委派
//cancelButtonTitle => 取消按鈕的文字
//destructiveButtonTitle => 特殊按鈕的文字,此按鈕會以紅色顯示
//otherButtonTitles => 其他按鈕的文字,以","隔開,"nil"結尾
UIActionSheet *sheet =
[[UIActionSheet alloc] initWithTitle:@"要作什麼呢?"
delegate:self cancelButtonTitle:@"不作事!"
destructiveButtonTitle:@"緊急任務"
otherButtonTitles:@"玩Game", @"出遊", nil];
//將UIActionSheet顯示於底層的View上
[sheet showInView:self.view];
}
//delegate => 符合UIActionSheetDelegate protocol協助的物件,
// 用以處理使用者選取按鈕後的工作,
// 在此以ViewController物件(self)作為委派
//cancelButtonTitle => 取消按鈕的文字
//destructiveButtonTitle => 特殊按鈕的文字,此按鈕會以紅色顯示
//otherButtonTitles => 其他按鈕的文字,以","隔開,"nil"結尾
UIActionSheet *sheet =
[[UIActionSheet alloc] initWithTitle:@"要作什麼呢?"
delegate:self cancelButtonTitle:@"不作事!"
destructiveButtonTitle:@"緊急任務"
otherButtonTitles:@"玩Game", @"出遊", nil];
//將UIActionSheet顯示於底層的View上
[sheet showInView:self.view];
}
第5步:執行後點選Button,UIActionSheet即會出現,點選按鈕後的按鈕文字字會顯示在UILabel上,以表示選取的按鈕。
檔案連結:UIActionSheet_UIActionSheetDelegate.zip