【发布时间】:2011-05-19 12:34:43
【问题描述】:
我的表格视图中的每个单元格都有一个按钮。我想在按下按钮时拨打一个号码。我以前使用过这样的代码调用:
NSString *cifra1=@"tel://";
NSString *cifra=customer.tel;
cifra1 = [cifra1 stringByAppendingString:cifra];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:cifra1]];
如果我将此代码放在方法“didSelectRowAtIndexPath”中,一切正常。但如果我把它放在-(IBAction)buttonPressed:(UIButton *) sender 中,什么都不会发生。我用 NSLog 检查了这个方法,它响应按钮点击。
怎么了?
编辑:奇怪,这行得通:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *cifra1=@"tel://";
NSString *cifra=@"123456789";
cifra1 = [cifra1 stringByAppendingString:cifra];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:cifra1]];
}
尽管客户编号被正确读取,但这并没有:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Customer *c=[customerArray objectAtIndex:indexPath.row];
NSString *cifra1=@"tel://";
NSString *cifra=c.tel;
cifra1 = [cifra1 stringByAppendingString:cifra];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:cifra1]];
}
【问题讨论】:
-
您如何获得电话号码,即
customer.tel。这是否因不同的行而异?如果是这样,如何从-buttonPressed:方法中引用它。 -
你能显示 didSelectRowAtIndexPath 的完整代码,以便我能说出 (IBAction)buttonPressed:(UIButton *) sender 有什么问题
-
@Deepak:当按下按钮并且一切正常时,我从 custoemr.tel 记录了号码,我得到了正确的号码。
-
你能发布这两种方法吗?它以一种方法而不是另一种方法工作似乎很奇怪。
标签: iphone uitableview uibutton call