斯威夫特:披露指标没有显示Segue

时间:2015-07-12 12:47:29

标签: ios swift uitableview segue

我正在使用带有Tableview的ViewController。

如果我激活"披露指标"做一个segue, 披露图标未显示。

如果我评论该行: self.myTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myTableCell"),披露指标显示,但segue不再有效。

以下是我的代码段:

override func viewDidLoad() {
    self.myTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myTableCell")
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cellIdentifier = "myTableCell"
    var cell = self.myTable.dequeueReusableCellWithIdentifier(cellIdentifier)

    if cell == nil {
        cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier)
    }

    let resultCarForList_data = resultCarNameForList[indexPath.row]
    cell!.textLabel?.text = resultCarForList_data

    return cell!
}

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    selectedCarID = resultCarIDList[indexPath.row]
    performSegueWithIdentifier("klickCarDetail", sender: self)

}

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

    if(segue.identifier == "klickCarDetail") {
        let DestViewController : CarDetail = segue.destinationViewController as!CarDetail
        DestViewController.passedCarID = selectedCarID
    }
}

问题出在哪里?

1 个答案:

答案 0 :(得分:1)

要显示披露指标,请设置accessoryType属性:

if cell == nil {
    cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier)
    cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator
}

对于Swift 4:

cell.accessoryType = UITableViewCellAccessoryType.disclosureIndicator

至于为什么segue不工作:在这种情况下你可以使用两种类型的segue。一个是使UITableViewCell成为segue的起源(在故事板中);在这种情况下,Interface Builder将自动添加披露指标。在这种情况下,不需要调用performSegueWithIdentifier("klickCarDetail", sender: self)(也不是对registerClass的调用);当用户选择行时,将自动触发segue。您当前使用的另一个是使用从一个视图控制器到另一个视图控制器的手动segue。