2017-02-03 3 views
-1

Ich mache eine App, wo ich Links zu URLs in meiner Tabellenansicht haben muss. Meine Frage ist, wie kann ich eine Zelle zu einer Website und eine andere zu einer anderen Website führen? Wenn Sie irgendwelche Fragen für mich haben, lassen Sie sie in den Kommentaren unten.UITableViewCell Pushing to URL

+0

Dies ist eine grundlegende Frage ist. Es gibt Tonnen an Tutorials dafür. Was hast du bisher versucht ? –

Antwort

0

Sie haben Ihren Controller, der die Tabelle über UITableViewDataSource und UITableViewDelegate richtet, richtig? Sie können oder implementieren bereits tableView(UITableView, didSelectRowAt: IndexPath), was bedeutet, wie Code ausgeführt wird, wenn der Benutzer auf Ihre Zelle klickt.

Sie haben wahrscheinlich auch eine Liste von URL-Objekten (let myURLs: [URL] = ...), die Sie verschieben möchten. Sie können die von der Funktion indexPath übergebene URL erhalten (wenn Ihre gesamte Tabellenansicht ein Abschnitt ist, wäre es nur myURLs[indexPath.row]; wenn Sie Abschnitte haben, müssen Sie herausfinden, welche URL die richtige ist). Öffnen Sie die URL mit UIApplication.shared.open(url).

0

können Sie diesen Tableview Delegate Methode wie folgt verwendet werden:

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

Hinweis: für nicht Protokoll UITableViewDelegate

enter image description here

Implement erhalten
+0

Das ist großartig, aber ich mache ein Array von Tabellenansicht Zellen und ich brauche jede Zelle zu einer anderen URL abhängig von der Zelle Titel oder Name, wie kann ich das mit dem Code, den Sie zur Verfügung gestellt. @Sour LeangChhean – Luc

+0

Sie können dies verwenden: lassen cell = tableView.cellForRow (at: indexPath) Wache lassen Adresse = Zelle .textLabel .text else {return} let url = URL? (String: Adresse)! –

+0

Sie können in meinem Bild @ Luc sehen –

0

Sie können dies mit dem 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 


     } 
    } 

Verwenden Sie in Ihrem zweiten View-Controller die variable URL, wie Sie möchten.

0

Ich denke, es Arbeit für Sie

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