Iphone 使用openURL从表单元格中的按钮进行调用失败

Iphone 使用openURL从表单元格中的按钮进行调用失败,iphone,uitableview,openurl,Iphone,Uitableview,Openurl,我在表视图单元格中有一个按钮,下面的操作使用按钮的标题文本进行调用 - (IBAction)makeCall:(id)sender { UIButton *button = (UIButton *)sender; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"tel://%@",[button titleForState:UICon

我在表视图单元格中有一个按钮,下面的操作使用按钮的标题文本进行调用

- (IBAction)makeCall:(id)sender
{
    UIButton *button = (UIButton *)sender;

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString     stringWithFormat:@"tel://%@",[button titleForState:UIControlStateNormal]]]];
}
这是失败的(注意:makeCall操作确实会被调用,调试按钮的标题文本会给出正确的值)

从视图上的按钮(即不在表格单元格中)使用相同的操作可以工作

有人知道为什么吗


谢谢。

您确定已将方法附加到按钮上吗

[yourButton addTarget:self selector:@selector(makeCall:) forControlEvents:UIControlEventTouchUpInside];
您始终可以使用
NSLog
对其进行调试:

NSLog(@"Yep, it does get called, `openURL` just doesn't work ...");
-(iAction)makeCall:(id)发送方下面添加上面的行。。。{


没关系,我知道你已经确定你的方法被调用了。添加以下行:

NSLog(@"Yep, it does get called, `openURL` just doesn't work ...: %@", [sender title]);

如果它包含任何空格或特殊字符(基本上是除A-Za-z0-9之外的所有字符),您可能需要对其执行一些URL编码操作(或者,如果可能,只需去掉这些字符).

我建议为URL和该字符串创建一个
NSString
。这两个按钮之间可能存在差异。谢谢,NSLog显示字符串完全相同。