UITableViewCell推送到网址

时间:2017-02-03 00:53:21

标签: swift uitableview tableviewcell

我正在创建一个应用程序,我需要在我的tableview中找到url的链接。我的问题是如何让一个单元格通向一个网站,另一个单元格通向另一个网站。如果您对我有任何疑问,请在下面的评论中留下。

4 个答案:

答案 0 :(得分:0)

您的控制器通过UITableViewDataSourceUITableViewDelegate来设置表格,对吗?您可以(或者可能已经)实现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

enter image description here

答案 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)
}