我的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]];
}
答案 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: