打开Safari的UITableView中的可点击链接

时间:2010-02-22 20:04:45

标签: iphone objective-c uitableview

我正在开发一款iPhone应用,并希望能够点击UITableView中的链接。当链接和仅选择链接时,我希望Safari应用程序打开到所选链接。有关如何做到这一点的任何建议?非常感谢!

3 个答案:

答案 0 :(得分:4)

您的问题有多种解决方案。

如果链接是单元格中唯一的对象,那么您可以调用didSelectRowAtIndexPath:(NSIndexPath *)indexPath UITableView函数来收集表数据数组中的链接,然后使用

[[UIApplication sharedApplication] openURL:myURL];

打开网址。

或者,您可以创建自己的UITableCell子类,其中包含没有图像或背景(仅文本)的自定义按钮(而不是圆角矩形按钮),以便它具有链接的外观(您可以甚至为文本蓝色着色,并强调它......)。当用户单击该按钮时,您的处理函数将调用与上面相同的openURL函数。

如果每个单元格中有多个项目,则上述方法效果最佳(这就是为什么您必须创建自定义单元格的原因...

答案 1 :(得分:0)

一种天真的方法是在每个单元格中嵌入一个小的UIWebView。 UIWebView有一个委托,可以让您知道何时单击链接,您可以实现该链接以启动Safari或导航到托管全屏UIWebView的新控制器。

这种方法可能过于耗费资源而且我自己没有尝试过,但如果确实有效,它会提供很大的灵活性。如果你尝试的话,很想知道结果。

在Safari使用中启动链接:

NSURL *url = [NSURL URLWithString:@"http://stackoverflow.com"];
if (![[UIApplication sharedApplication] openURL:url]) {
    NSLog(@"%@%@", @"Failed to open url:", [url description]);
}

答案 2 :(得分:0)

UITableView中的链接是否在自己的行中?如果是这样,那么当单击相应的行时,您可以在didSelectRowAtIndexPath中处理它。