2011-08-05 46 views
0

我有一個表視圖單元的按鈕,下面的操作使用按鈕使用的OpenURL撥打電話的按鈕無法在表格單元格

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

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString  stringWithFormat:@"tel://%@",[button titleForState:UIControlStateNormal]]]]; 
} 

這是失敗的標題文本進行呼叫(注意:makeCall動作會被調用,並且調試按鈕的標題文本會給出正確的值)。

使用從視圖上的按鈕(即不在表格單元格)中的SAME動作。

任何人都知道爲什麼?

謝謝。

+0

我建議爲URL和'NSLog'生成一個'NSString'字符串。也許這兩個按鈕之間有區別。 – Mundi

+0

謝謝,NSLog顯示的字符串是完全一樣的。 – Agreensh

回答

0

您確定將您的方法附加到按鈕上嗎?

[yourButton addTarget:self selector:@selector(makeCall:) forControlEvents:UIControlEventTouchUpInside]; 

您可以隨時通過NSLog調試它:

NSLog(@"Yep, it does get called, `openURL` just doesn't work ..."); 

上方添加下面- (IBAction)makeCall:(id)sender ... {


沒關係行了,我看你已經確定你的方法被調用。添加以下行來代替:

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

如果它包含任何空格或特殊字符(除A-ZA-Z0-9基本上所有字符),你可能需要在其上進行一個小的URL編碼操作(或者,如果可能的話,將這些角色剝離)。