将数据从tableview传递到webview

我是swift3的新手。 所以,如果您认为这是一个简单的问题,请原谅我。 在我的情况下搜索互联网或堆栈溢出时没有明确的想法,所以我问这个问题。

目标:将数据从tableview传递到webview

示例:表中的数据1,2,3 …,按1,然后跳转到值为1的webview

信息:

  • 在main.storyboard中,看起来像:
    main.storyboard
  • 用于具有tableview的视图控制器的类oneViewController

  • 用于具有webview的视图控制器的类twoViewController

在oneViewController中,设置得很好并选择行:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { //Array[indexPath.row] //This value expected to pass //some code to execute passing data... //Also, jump into another view controller with webview } 

在twoViewController中,一切准备就绪:

  //let passData = some code to get the data.... let URL = NSURL(string: "https://www.example.com?data=\(passData)") webView.loadRequest(NSURLRequest(url: URL! as URL) as URLRequest) 

最后,PHP可以获得价值

 echo $_GET["data"]; 

问题:

  1. 如何在main.storyblard中设置tableview和webview之间的关系?

将视图控制器连接到另一个视图控制器? 或者将表视图单元连接到视图控制器? 或者是其他东西…..

  1. 如何在类oneViewController和twoViewController中实现传递数据?

请按照以下步骤操作: –

第1步:下面的代码将启动并传递TwoViewController的数据。 请注意,在Main.Storyboard-> TwoViewContoller中,将标识符指定为TwoViewController

 override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let storyBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil) let twoVC:TwoViewController = storyBoard.instantiateViewController(withIdentifier: "TwoViewController") as! TwoViewController twoVC.passData = Array[indexPath.row] self.present(twoVC, animated: true, completion: nil) } 

第2步:在TwoViewController类中定义一个变量,如下所示

 var passData: String = "" 

你可以做三个解决方案:

1-以segue发送数据

2-忘记segue关系并在didSelectRowAt中调用新控制器,并设置如下数据:

 let vc = UIStoryboard(name: "BarcodeScanner", bundle: nil).instantiateInitialViewController()! as! BarcodeScannerViewController vc.passData = valueWantToSend self.presentViewController(vc, animated: true, completion: nil) 

3-使用这样的结构,你可以在项目的任何地方使用你的数据:

 struct Variables { static var value = false static var passData = "" } 

例如: Variables.passData=@"new value"