[英]How to pass data from one table view to another table view in Swift?
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var tableView: UITableView
var dict1:Dictionary<Int,String> = [ 0:"One",1:"TwO",2:"Three"];
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
}
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return self.dict1.count;
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
cell.textLabel.text = self.dict1[indexPath.row]
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("You selected cell #\(indexPath.row)!")
}
}
You can explicitly build the new view controller and pass the data in when you detect that a row is selected: 您可以显式构建新的视图控制器,并在检测到选择了某行时将数据传递给它:
override func tableView(tableView: UITableView!, didSelectRowAtIndexPath path: NSIndexPath!) {
let entry = news[path.row] as NSDictionary
let url = entry["link"] as NSString
let secondViewController =
self.storyboard.instantiateViewControllerWithIdentifier("SecondViewController")
as SecondViewController
// pass the relevant data to the new sub-ViewController
secondViewController.url=url;
// tell the new controller to present itself
self.navigationController.pushViewController(secondViewController, animated: true)
}
and in SecondViewController.swift, add a variable to hold the relevant data. 在SecondViewController.swift中,添加一个变量来保存相关数据。
class SecondViewController: UIViewController {
var url: String? = ""
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.