我正在努力将我从数据库中获取的数据传递到详细视图,其中显示了更多信息。在我的视图控制器中,我有一个方法GET()从数据库中获取数据。我正在努力尝试通过segue传递这些数据。我还有一个Cell.swift文件,它由四个标签组成。我只是试图将用户在表格视图单元格中单击的数据传递给detailviewcontroller。
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
@IBOutlet var TableView: UITableView!
@IBAction func refresh(sender: AnyObject) {
get()
}
var values:NSArray = []
override func viewDidLoad() {
super.viewDidLoad()
get();
}
func get(){
let url = NSURL(string: "http://get.php")
let data = NSData(contentsOfURL: url!)
values = try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSArray
TableView.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return values.count;
}
// This function is called before the segue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// get a reference to the second view controller
let secondViewController = segue.destinationViewController as! DetailedViewController
// set a variable in the second view controller with the String to pass
secondViewController.d = "ddd";
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! SpecialCell
let maindata = values[indexPath.row]
cell.RecipeName.text = maindata["RecipeName"] as? String
cell.IngredientsList.text = maindata["IngredientList"] as? String
cell.Method.text = maindata["Method"] as? String
cell.Rec.text = maindata["PhotoURL"] as? String
var urlString = maindata["PhotoURL"] as? String
var url = NSURL(string: maindata["PhotoURL"]as! String)!
var data = NSData(contentsOfURL: url)!
cell.DaImage.image = UIImage(data: data)
return cell;
}
答案 0 :(得分:0)
您可以在准备segue方法中获取tableViewCell
,方法是获取所选行并使用该indexPath获取如下所示的选定单元格
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// get a reference to the second view controller
let secondViewController = segue.destinationViewController as! DetailedViewController
if let indexPath = tableView.indexPathForSelectedRow {
let cell = tableView.cellForRow(at: indexPath) as? SpecialCell
detailViewController.data = cell?.data
detailViewController.anyotherdata = cell?.anyotherdata
}
}