我正在玩xCode并且正在尝试创建一个小应用程序,其中包含一个包含各种个人名称的表视图(使用数组构建)。用户可以单击表视图中的一行,并显示一个UIAlert,可以选择呼叫该人或取消。
如果他们点击取消,UIalert就会解散。如果他们点击“呼叫”按钮,我想启动“电话”应用程序并拨打他们的号码。
到目前为止,这就是我的代码:
//Generate the UIAlert when the user clicks on a row
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexpath
{
NSUInteger row = [indexpath row];
NSString *rowValue = [listData objectAtIndex:row];
NSString *message = [[NSString alloc] initWithFormat:@"Contact %@", rowValue];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Call this Office"
message:message
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Call",nil];
[alert show];
[message release];
[alert release];
}
//Detect which of the UIAlert buttons was clicked and dial a different number
//based on the index of the original row that was selected
- (void)alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (row)
{
case 1:
if (buttonIndex != [alert cancelButtonIndex])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://123456789"]];
}
break;
case 2:
if (buttonIndex != [alert cancelButtonIndex])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://987654321"]];
}
break;
default:
break;
}
}
这是我的问题 - 我知道上面的switch语句不起作用 - 该方法不知道“行”是什么。那么,我究竟应该如何传入/访问用户点击用于我的switch语句的行的索引?
答案 0 :(得分:4)
在您说[alert show]设置其标记
之前创建UIAlertViewalert.tag = [indexPath row];
现在在你的switch(row)语句中执行
switch(alert.tag)