如何在UITableViewController中单击自定义单元格而不禁用此单元格中的textField编辑来禁用segue

时间:2014-12-29 03:17:07

标签: ios swift

我有自定义单元格和textfild。 对于某些单元格,我需要通过单击禁用segue并启用文本字段进行编辑。我这样试试:

    if indexPath.row<tests.count{
       cell.themeTextField?.text = test.name
       cell.themeTextField.enabled=false
    }
    else {
        cell.accessoryType = UITableViewCellAccessoryType.None
        cell.selectionStyle = UITableViewCellSelectionStyle.None;
        cell.userInteractionEnabled = false;   
    }

Segue已停用,但我无法在textField中输入文字

1 个答案:

答案 0 :(得分:2)

尝试替代,

从tableCell中删除该segue并从UITableViewController创建一个新的(从对象导航器而不是故事板中拖动它)到下一个控制器 - 并为其命名(例如:DidSelectCellSegue )。

然后在didSelectRowAtIndexPath:委托方法中,以编程方式和条件方式执行segue。

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

    if conditionForPerformingSegueIsSatisfied {
        self.performSegueWithIdentifier("DidSelectCellSegue", sender: self)
    }
}

并将cellForRow代码更改为

if indexPath.row<tests.count{
   cell.themeTextField?.text = test.name
   cell.themeTextField.enabled=false
}
else {
    cell.accessoryType = UITableViewCellAccessoryType.None
    cell.selectionStyle = UITableViewCellSelectionStyle.None;
    cell.themeTextField.enabled = true;   
}