Swift: triggersment de TableViewCell pour aboutir à un lien dans un UIWebView dans un autre ViewController

Quand je tape un tableViewCell je veux un lien (qui est spécifique à indexPath.row cette cellule) pour s'ouvrir dans un nouveau viewController avec un webView.

Exemple: Je tape la 3ème cellule dans le tableView et www.apple.com s'ouvre sur un nouveau viewController.

didSelectRowAtIndexPath faire cela avec didSelectRowAtIndexPath mais je n'arrive pas à comprendre comment mettre le code set de sorte que le code du linksArray (où j'ai tous les liens stockés) fonctionne set quand je tape le tableViewCell

J'interroge ces liens depuis Parse.com. C'est mon tableau:

var linksArray = [NSURL]( )

J'ai créé une nouvelle class appelée LinkViewViewController où j'ai juste la webView connectée comme @IBOutlet weak var webView: UIWebView! et rien d'autre. J'ai retiré la méthode viewDidLoad afin que je puisse contrôler le LinkViewViewController de la class FeedTableViewController qui a les cellules.

Voici mon code ci-dessous

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let myWebView = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! LinkViewViewController var url = NSURL(ssortingng:"\(links[indexPath.row])") var request = NSURLRequest(URL: url!) myWebView.webView.loadRequest(links[indexPath.row] as! NSURLRequest) } 

METTRE À JOUR

J'essaie aussi de le faire de cette façon, ce qui est peut-être plus logique. J'accède aux liens stockés dans Parse dans la class ProductInfo. Le tableau productName représente l'ordre dans lequel les cellules sont organisées afin que les liens soient accessibles lorsque vous tapez sur le nom du produit.

  override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let myWebView = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! LinkViewViewController //Assuming that myWebView is the right method/way to go about it. var link = PFObject(className: "ProductInfo") link["pLink"] = productName[indexPath.row] /* Code missing: I'm accessing where the link is (the indexPath.row) associated with the productName. I don't know how to go about this now... How do i access the webView in the other viewController where the corresponding link appears? */ } 

J'ai aussi essayé de créer une segue depuis la cellule vers le webView mais cela n'a pas fonctionné non plus …

Comment puis-je configurer le didSelectRowAtIndexPath afin qu'un lien soit déclenché pour apparaître dans une nouvelle vue?

Pensée: NSTransportSecurity dans le info.plist aussi un problème?

Toute aide signifie beaucoup.

Merci.

    Vous ne devriez pas utiliser dequeueReusableCellWithIdentifier pour créer votre prochain controller de vue. Vous devez utiliser l'instantiateViewControllerWithIdentifier du storyboard pour créer l'instance: Définissez le "Storyboard ID" pour viewController dans votre storyboard

    Image de storyboard

    Si vous le définissez, par exemple, "WebViewController", vous pouvez ensuite créer l'instance avec:

     let myWebView = self.storyboard!.instantiateViewControllerWithIdentifier("WebViewController") as! LinkViewViewController 

    Ma recommandation serait de donner à LinkViewViewController sa propre propriété d'URL,

     var url : NSURL? 

    et pour passer l'URL après avoir créé l'instance:

     myWebView.url = url 

    puis présentez le nouveau VC:

     self.presentViewController(myWebView, animated: true, completion: nil) 

    Dans viewDidLoad de LinkViewViewController, chargez l'URL dans le WebView:

     let URLRequest = NSURLRequest(self.url) self.webView.loadRequest(URLRequest) 

    (Dactylographié sans essai, s'il vous plaît pardonner toutes les fautes de frappe / erreurs avec optionals etc).

    Pour didSelectRow , cette méthode utilise la méthode didSelectRow pour créer l'instance de controller de vue et transmettre l'URL. Une autre option serait d'utiliser un segue en faisant glisser ctrl de la cellule prototype vers le controller de vue. Vous devez ensuite implémenter un code similaire dans la méthode prepareForSegue pour définir l'URL.