我正在创建一个应用程序,我需要在我的tableview中找到url的链接。我的问题是如何让一个单元格通向一个网站,另一个单元格通向另一个网站。如果您对我有任何疑问,请在下面的评论中留下。
答案 0 :(得分:0)
您的控制器通过UITableViewDataSource
和UITableViewDelegate
来设置表格,对吗?您可以(或者可能已经)实现tableView(UITableView, didSelectRowAt: IndexPath)
,这是在用户点击您的单元格时执行某些代码的方法。
您可能还有一个要推送到的url对象列表(let myURLs: [URL] = ...
)。您可以通过函数中传递的indexPath
获取您要查找的网址(如果您的整个表格视图是一个部分,它只是myURLs[indexPath.row]
;如果您有部分,你需要确定哪个URL是正确的)。使用UIApplication.shared.open(url)
打开网址。
答案 1 :(得分:0)
您可以像这样使用此Tableview Delegate方法:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let url = URL(string: "http://www.google.com")!
if #available(iOS 10.0, *) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(url)
}
}
注意:不要获得实施协议UITableViewDelegate
答案 2 :(得分:0)
您可以使用push segue
执行此操作func prepare(for segue: NSStoryboardSegue, sender: Any?) {
if segue.identifier == "Push" {
//This refers to the second view controller
let vc = segue.destination as! yourSecondViewController
//selected indexPath
let indexPath = self.tableView.indexPathForSelectedRow
//gets the url from that array indexPath
let object = urlArray[indexPath!.row]
//create a variable called url in your second view controller and call it like this
vc.url = object
}
}
在第二个视图控制器中,根据需要使用变量url。
答案 3 :(得分:0)
我认为这对你有用
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
let urlName = self.arrUrlName[indexPath.row]
//self.arrUrlName : whatever your array name, i hope your array contains only url
let url = URL(string: urlName)
UIApplication.shared.openURL(url)
}