如何将数组传递给所需的DetailViewController?

时间:2014-11-26 11:54:36

标签: swift tableview

我有这段代码

var situation = ["11", "12", "13", "14"]
var situation1 = ["21", "22", "23", "24"]
var situation2 = ["31", "32", "33", "34", "35", "36"]

var situationD1 = ["11", "12", "13", "14" ]
var situationD2 = ["21", "22", "23", "24"]
var situationD3 = ["31", "32", "33", "34", "35", "36"]

override func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String?
{
    switch section {
    case 0:
        return "One"
    case 1:
        return "Two"
    case 2:
        return "Three"

    default:
        return nil
    }
}


override func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
    return 3
}

 override func tableView(tableView: UITableView, cellForRowAtIndexPath 
 indexPath: NSIndexPath) ->       UITableViewCell {
    let identifier = "cell"
    var cell = tableView.dequeueReusableCellWithIdentifier("cell") as? UITableViewCell

    if (indexPath.section == 0) {
        cell!.textLabel.text = situation[indexPath.row]


    }
    if (indexPath.section == 1) {
        cell!.textLabel.text = situation1[indexPath.row]

    }

    if (indexPath.section == 2) {
        cell!.textLabel.text = situation2[indexPath.row]


    }

    return cell!
}

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

    switch section {
    case 0:
        if tableView == self.searchDisplayController!.searchResultsTableView {
            return searchResults.count
        }
        else {

            return situation.count }


    case 1:
        if tableView == self.searchDisplayController!.searchResultsTableView {
            return searchResults.count
        }
        else {
            return situation1.count }
  //  default:
   //   return 0

    case 2:
        if tableView == self.searchDisplayController!.searchResultsTableView {
            return searchResults.count
        }
        else {
            return situation2.count}
    default:
        return 0


    }

}


func filterContentForSearchText (searcText: String) {
    searchResults = situation.filter{($0 as NSString).localizedCaseInsensitiveContainsString("\
(searcText)")}
}
   func searchDisplayController(controller:UISearchDisplayController, shouldReloadTableForSearchString searchString: String!) -> Bool {
    self.filterContentForSearchText(searchString)
    return true
}

 override func tableView(tableView:UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath){
    if tableView == self.searchDisplayController!.searchResultsTableView {
        self.performSegueWithIdentifier("showDetail", sender: self)
    }

}


override func prepareForSegue(segue: UIStoryboardSegue, sender:AnyObject!) {
    if segue.identifier == "showDetail" {
        let indexPath = tableView.indexPathForSelectedRow()

        let destViewController:DetailViewController! = segue.destinationViewController as DetailViewController
            destViewController.situation = situationD1[indexPath!.row]

    }
}

现在表格的所有部分包括质量情况D1。 我希望DetailViewController中的每个部分显示来自相应数组的数据。 我不知道怎么做。 请帮忙。

1 个答案:

答案 0 :(得分:0)

很抱歉,但我不太了解您运行代码时发生的情况:您能否提供更多详细信息? (空表,坏数据,没有部分,什么?)另外,请告诉我们在您设置断点时会发生什么?

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

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

你看起来像是在正确的轨道上,但是如果没有关于运行代码时发生的事情的更多细节,很难说清楚。

如果这对您来说是新手,请继续google阅读“UITableView swift docs”并查看UITableView文档以及Apple的TableView编程指南。它将为您提供良好的概述,并有助于更好地了解正在发生的事情。现在的链接是(https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html#//apple_ref/doc/uid/TP40007451

最好的运气