2012-06-27 29 views
3

我想制作一个表格单元格,当点击时调用一个电话号码,我认为我必须使用的代码是;在哪里放置“... [UIApplication sharedApplication] openURL ...”?

[[UIApplication的sharedApplication]的OpenURL:[NSURL URLWithString:@ “电话:数量写”]];

但是会发生什么事情是,只要应用程序打开,电话就会自动放置,因此我认为问题在于代码的位置。
它需要放在哪里才能实现所需的电池功能?

回答

1

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
+0

谢谢,但是这个“知道”哪个单元格是“... openURL ...”的意思呢? –

+2

假设您希望tableview中的所有单元格都调用某个数字,请为每行创建一个NSString或NSURL数组,然后在该方法内使用[indexPath row]来选择合适的数字 –

+0

Like Rich Tolley说您应该使用indexPath.row来确定哪个单元被点击。如果您为单元格创建子类,那么您可以在其中存储数据(NSString * phoneNumber),并在创建时通过访问数组中的单元格来调用它。 – mkral

1

应放置在tableview中的委托 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 方法。

-2

谢谢大家为您提供的答案是正确的,但(在您的帮助下)我找到了一个更简单的解决方案;

- (void)didTap_tableViewCell2:(UIView *)cell { 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:thenumber"]]; } 
+0

这是一个tableview代表?我从来没有用过这个。你真的应该看看didSelectRowAtIndexPath委托。因此,我认为你正在为每个表格单元创建一个方法?这是非常糟糕的设计。如果您需要使用表格视图帮助,我们可以为您提供帮助。 – mkral

+1

这看起来像一个很好的你想要做什么:http://www.iosdevnotes.com/2011/10/uitableview-tutorial/ – mkral

+2

但真的,如果你只是添加' - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {NSLog(@“Selected Row%d”,indexPath.row;}'我想你会明白它是如何工作的 – mkral

相关问题