2015年10月15日 星期四

筆記 - UIAlertView Button Action Listener

操作環境:Mac OS 10.10.5、Xcode 7.0

以下只要此 view controller 是繼承 UIViewController 就可動作。

alert (在適當位置), eg.
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    UIAlertView *alert = [[UIAlertView alloc]
                          initWithTitle:@"This is the title"
                          message:@"Sure?"
                          delegate:self
                          cancelButtonTitle:@"Wait!"
                          otherButtonTitles: @"YES", nil];
    [alert show];
}

再加入這個 method 即可做判斷
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == [alertView firstOtherButtonIndex]) {
        NSLog(@"YES selected.");
    } else if (buttonIndex == [alertView cancelButtonIndex]) {
        NSLog(@"Wait! selected.");
    } else {
        NSLog(@"others.");
    }
}


執行結果,假設選擇 "Wait!"

Note:
如果一個 view 內有多個 alert views,那就在 [alert show]; 之前,把該 alert 加上 tag (eg. alert.tag = 123;),然後就可以在 clickedButonAtIndex 內做判斷 (eg. if (alertView.tag == 123) {// do sth.})。

沒有留言:

張貼留言