按下UITableViewCell中的按钮时无法启动呼叫

时间:2011-05-19 12:34:44

标签: iphone uitableview uibutton call

我的tableview中的每个单元格都有一个按钮。我想按下按钮时拨打一个号码。我之前使用过代码调用:

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]];

}

4 个答案:

答案 0 :(得分:0)

这是你的buttonPressed叫吗?

尝试添加NSLog(@"%s", __FUNCTION__);

尝试使用id而不是UIButton:

-(IBAction)buttonPressed:(id) sender

答案 1 :(得分:0)

(IBAction)buttonPressed :( UIButton *)发件人

将其更改为(IBAction)buttonPressed:(id)sender

答案 2 :(得分:0)

这样做

NSString *cifra = [[c.tel copy] autorelease];

我怀疑你正在使用核心数据。

答案 3 :(得分:0)

确保使用addTarget:action:withObject:forControlEvents:

设置按钮的目标