将数据从tableview传递到webview

时间:2016-10-27 15:45:47

标签: ios swift3

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

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

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

信息:

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

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

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

ReactDOM.findDOMNode(component)

在twoViewController中,一切准备就绪:

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
}  

最后,PHP可以获得值

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

问题:

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

    将视图控制器连接到另一个视图控制器?或者将表视图单元连接到视图控制器?或其他什么.....

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

2 个答案:

答案 0 :(得分:1)

按照以下步骤操作: -

第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 :(得分:1)

你可以做三个解决方案:

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"