ios Swift:将数据从tableView传递到视图控制器

时间:2016-10-12 12:14:44

标签: ios swift tableview

enter image description here这是我第一次发帖提问而不确定它是如何运作的。我正在快速做作业。我陷入了需要将数据从tableview传递给viewcontroller的地步。在我的第一个ViewController上,我有一个来自数据库表的数据列表(类别),当用户点击任何一个单元格时,它应该转到下一个viewcontroller,标签成为标题。请找我附的屏幕截图。

由于

init(descriptor:size:)

我尝试使用func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return values.count; } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CategoryList_TableViewCell let maindata = values[indexPath.row] cell.categoryLabel.text = maindata["NAME"] as? String return cell; } didSelectRowAtIndexpath函数,但没有理解。

任何人都可以指导我。

提前感谢一百万人:)

screenshot of the table

2 个答案:

答案 0 :(得分:5)

您不需要实现didSelectRow只是为了通过segue传递数据。假设您正在使用故事板。

  1. CTRL从故事板中的原型TableViewCell拖动到要传递数据的ViewController。

  2. 为segue类型选择Show并为其指定标识符

  3. 在prepareForSegue中执行此操作:

    if segue.identifier == "catView" {
        if let indexPath = self.tableView.indexPathForSelectedRow {
            let controller = segue.destinationViewController as! YourViewController
            let value = values[indexPath.row]
            controller.catTitleRec = value["NAME"] as! String
    }
    

答案 1 :(得分:1)

didSelectRowAtIndexPath

中执行此操作
let maindata = values[indexPath.row]
self.performSegueWithIdentifier("yourIdentifier", sender: mainData)

然后,在prepareForSegue函数中执行此操作:

let destinationVC = segue.destinationViewcontroller as! YourCustomViewController
destinationVC.yourObject = sender as! YourObject