2017-02-03 34 views
-1

我正在製作一個應用程序,我需要在我的桌面視圖中鏈接到URL的內部。我的問題是如何讓一個單元格導致一個網站,另一個單元格導致另一個網站。如果您對我有任何疑問,請將其留在下面的評論中。UITableViewCell推送到Url

+0

這是一個基本的問題。這裏有很多教程。你試過什麼了 ? –

回答

0

你有你的控制器,通過UITableViewDataSourceUITableViewDelegate設置表,對不對?你可以或可能已經在實施tableView(UITableView, didSelectRowAt: IndexPath),這是當用戶點擊你的單元格時如何執行一些代碼。

您可能還有一個您想要推送的url對象列表(let myURLs: [URL] = ...)。你可以通過indexPath傳入該函數來獲得你正在尋找的URL(如果你的整個表格視圖是一個部分,那麼它只是myURLs[indexPath.row];如果你有部分,你需要找出哪個URL是正確的)。用UIApplication.shared.open(url)打開網址。

0

您可以使用此泰伯維委託的方法是這樣的:

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

+0

這是偉大的,但我正在製作一個表格視圖單元格的數組,我需要每個單元格去取決於單元格標題或名稱不同的網址我怎麼能用你提供的代碼做到這一點。 @Sour LeangChhean – Luc

+0

您可以使用此: 讓電池= tableView.cellForRow(在:indexPath) 後衛讓地址=細胞.textLabel的.text其他{}回報讓 URL =網址?(字符串:地址)! –

+0

你可以在我的照片中看到@Luc –

0

您可以用推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。

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