对tableviewcontroller大家一般会有如下代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSUInteger row = indexPath.row;
NSString *rowValue = [listData objectAtIndex:row];
NSString *msg = [[NSString alloc]initWithFormat:@"You selected %@", rowValue];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Row Slected" message:msg delegate:nil cancelButtonTitle:@"Yep, I did" otherButtonTitles: nil];
[msg release];
[alert show];
[alert release];
[tableView deselectRowAtIndexPath:indexPath animated:YES];//在弹出警告后自动取消选中表视图单元
}
但是在设计相应按钮时间时候会有如下代码
- (void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
switch (buttonIndex) {
case 0:
NSLog(@"Cancel Button Pressed\n");
break;
case 1:
NSLog(@"change Pressed\n");
break;
case 2:
NSLog(@"Button 2 Pressed\n");
break;
case 3:
NSLog(@"Button 3 Pressed\n");
break;
default:
NSLog(@"-1\n");
break;
}
}
同时各路大神还会建议加上委托UIAlertViewDelegate,无论你继承自UIViewController还是UITableViewController都可以,反正UITableViewController是UIViewController的子类,但是要注意
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Row Slected" message:msg delegate:nil cancelButtonTitle:@"Yep, I did" otherButtonTitles: nil];把delegate:nil 改为delegate:self(很多入门教程都采用的前者)
不然会无法响应响应时间,因为alert不知道委托在是谁,虽然你加了委托UIAlertViewDelegate