如何匹配两个TableView中的值

时间:2016-04-20 21:23:20

标签: ios swift uitableview

有一个包含文件夹名称的tableview,在单击每一行后,它会转到另一个TableView,以显示每个文件夹的部分和行。但是我遇到了如何显示每个文件夹对应的值的问题。错误消息是:致命错误:在展开Optional值时意外发现nil。请参阅下面的代码。我想这个问题是准备好的。塞格代码并没有很好地运作。

注意:某处我需要删除一半")"因为它不适用于"()"我无法编辑。请帮忙编辑。

在第一张表格中:

var folderNames = [String]()

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        if segue.identifier == segueToDetailsTable {

            let detailsVC = segue.destinationViewController as! DetailsViewController

            detailsVC.detailsTableView.indexPathForCell(UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "DetailsCell")) == savingTableView.indexPathForSelectedRow


        }

    }

在第二个TableView中显示详细信息:

var sectionTitles = ["WebSite", "Date Saved", "Document Used","Add Notes"]

var detailsInSection = [[String](), [NSDate](),[AnyObject](),[String]()]

func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return detailsInSection.count
    }

    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

        return sectionTitles[section]
    }


    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return detailsInSection[section].count
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("DetailsCell")

        cell?.textLabel!.text = detailsInSection[indexPath.section][indexPath.row].description

        return cell!
    }

1 个答案:

答案 0 :(得分:0)

你在prepareForSegue中做了一些奇怪的事情。 detailsVC尚未加载,因此tableview可能仍为零。但最重要的是,你不能像那样连接表格。选择行时,请确定下一步应显示哪些数据。在聚合数据之后,将其设置为prepareForSegue方法内第二个vc上的属性。当下一个vc加载它正在使用的属性时,应该在表加载时设置它。您还有两个不同的数据源,tableview读取。这有点危险,因为您无法保证在其他来源中有相应的值。