Swift:触发TableViewCell导致另一个ViewController中的UIWebView中的链接

当我点击一个tableViewCell我想要一个链接(这是特定于该单元格的indexPath.row )打开一个新的viewController与一个webView。

例如:我点击tableView的第三个单元格,www.apple.com打开一个新的viewController。

我试图用didSelectRowAtIndexPath做到这一点,但我不知道如何把代码放在一起,以便linksArray (其中我有所有链接存储)的代码一起工作,当我点击tableViewCell

我从Parse.com查询这些链接。 这是我的数组:

var linksArray = [NSURL](

我创build了一个名为LinkViewViewController的新类,我只把webView连接成一个@IBOutlet weak var webView: UIWebView! 没有别的。 我拿出viewDidLoad方法,以便可以从具有单元格的FeedTableViewController类控制LinkViewViewController

这是我的代码如下

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

UPDATE

我也试图这样做,这也许更合乎逻辑。 我正在访问存储在ProductInfo类中的Parse中的链接。 productName数组代表单元按什么顺序排列,以便在产品名称上点击时可以访问链接。

  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? */ } 

我也试过从单元格创build一个segue到webView,但是也没有工作…

我如何设置didSelectRowAtIndexPath以便触发一个链接出现在一个新的视图?

思想: info.plist NSTransportSecurity也是一个问题?

任何帮助意味着很多。

谢谢。

你不应该使用dequeueReusableCellWithIdentifier来创build你的下一个视图控制器。 你应该使用storyboard的instantiateViewControllerWithIdentifier来创build实例:在storyboard中为viewController设置“Storyboard ID”

故事板图像

例如,如果将其设置为“WebViewController”,则可以使用以下命令创build实例:

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

我的build议是给LinkViewViewController自己的URL属性,

 var url : NSURL? 

并在创build实例后传递URL:

 myWebView.url = url 

然后介绍新的VC:

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

在LinkViewViewController的viewDidLoad中,将URL加载到webView中:

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

(打字时没有testing;请原谅任何拼写错误或选项等错误)。

最后要说明的是,此方法使用didSelectRow方法创build视图控制器实例并传递URL。 另一个select是通过从原型单元格拖动到视图控制器来使用segue。 然后你需要在prepareForSegue方法中实现类似的代码来设置url。