使用UITableViewCell中的UISwitch更新CoreData值

使用UITableViewCell中的UISwitch更新CoreData值,uitableview,uiswitch,Uitableview,Uiswitch,只是为了学习,所以我确信有更好的方法来编码我到目前为止所拥有的东西。无论如何,我有一个简单的任务列表保存到核心数据中。您可以转到另一个VC,在那里您可以编辑或创建新任务。我希望能够在自定义单元格中放置一个uiswitch,允许您将任务设置为完成,然后重新加载tableview。我已经搜索了所有地方,找到了这个,但似乎无法翻译一个解决方案。任何帮助都会很好 我不确定是应该在自定义单元格中编写save代码,还是只是传递或传递委托 这是我的定制手机 协议设置CellDelegate:类{ func

只是为了学习,所以我确信有更好的方法来编码我到目前为止所拥有的东西。无论如何,我有一个简单的任务列表保存到核心数据中。您可以转到另一个VC,在那里您可以编辑或创建新任务。我希望能够在自定义单元格中放置一个uiswitch,允许您将任务设置为完成,然后重新加载tableview。我已经搜索了所有地方,找到了这个,但似乎无法翻译一个解决方案。任何帮助都会很好

我不确定是应该在自定义单元格中编写save代码,还是只是传递或传递委托

这是我的定制手机 协议设置CellDelegate:类{ func didChangeSwitchState(发送方:TaskCell,isOn:Bool) }

类TaskCell:UITableViewCell{

var delegate: SettingCellDelegate!

@IBOutlet weak var taskImage: UIImageView!
@IBOutlet weak var arrowImage: UIImageView!
@IBOutlet weak var dueDateLabel: UILabel!
@IBOutlet weak var dueDateValue: UILabel!
@IBOutlet weak var dueTimeLabel: UILabel!
@IBOutlet weak var dueTimeValue: UILabel!
@IBOutlet var taskCellStatus: UITextField!
@IBOutlet var taskCellSwitchDisplay: UISwitch!
@IBAction func taskCellSwitchAction(sender: AnyObject) {

    if (taskCellSwitchDisplay.on) {

        taskCellStatus.text = "Completed"

    } else {

        taskCellStatus.text = "Active"

    }
}

@IBOutlet weak var taskNameValue: UILabel!

override func awakeFromNib() {
    super.awakeFromNib()
    delegate = self
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)
    taskCellSwitchDisplay.addTarget(self, action: "switchChanged:", forControlEvents: UIControlEvents.ValueChanged)
}

func configureCell(task: Tasks) {
    taskImage.image = UIImage(named: "Icon.png")
    arrowImage.image = UIImage(named: "arrow_filled.png")
    dueDateLabel.text = "Due Date:"
    dueDateValue.text = task.taskDate
    dueTimeLabel.text = "Due Time:"
    dueTimeValue.text = task.taskTime
    taskNameValue.text = task.taskName
    taskCellStatus.text = task.status
    //taskCellStatus.hidden = true
    if (taskCellStatus.text == "Completed") {

        taskCellSwitchDisplay.on = true


    } else {

        taskCellSwitchDisplay.on = false
    }

}

func switchChanged(taskCellSwitchDisplay: UISwitch) {
    _ = taskCellSwitchDisplay.on

    if taskCellSwitchDisplay.on == true {

        let switchValue = "Completed"

        print("Switch Variable: \(switchValue)")

        delegate.didChangeSwitchState(self, isOn: true)

    } else {

        let switchValue = "Active"

        print("Switch Variable: \(switchValue)")

        delegate.didChangeSwitchState(self, isOn: false)

    }

}
这里是我在tableview中获取代理的位置

扩展任务单元:SettingCellDelegate{ func didChangeSwitchState(发送方:TaskCell,isOn:Bool){

    if isOn == true {

        print("true")


    } else {

        print("false")
    }
}