Ios 默认情况下在单元格上启用heckmarks?只是用更多观察更新了问题。否,默认情况下不在单元格上启用复选标记。此tableview是此视图控制器中唯一的tableview。我感觉“allowsMultipleSelection”属性未设置为true。但是我

Ios 默认情况下在单元格上启用heckmarks?只是用更多观察更新了问题。否,默认情况下不在单元格上启用复选标记。此tableview是此视图控制器中唯一的tableview。我感觉“allowsMultipleSelection”属性未设置为true。但是我,ios,uitableview,swift3,Ios,Uitableview,Swift3,默认情况下在单元格上启用heckmarks?只是用更多观察更新了问题。否,默认情况下不在单元格上启用复选标记。此tableview是此视图控制器中唯一的tableview。我感觉“allowsMultipleSelection”属性未设置为true。但是我假设你是通过故事板设置的?谢谢Andrey-我最终在属性检查器中设置了allowMultipleSelection属性。现在,日志确认按相同的按钮在调用tableView:didSelectRowAt:和tableView:didSelectR


默认情况下在单元格上启用heckmarks?只是用更多观察更新了问题。否,默认情况下不在单元格上启用复选标记。此tableview是此视图控制器中唯一的tableview。我感觉“allowsMultipleSelection”属性未设置为true。但是我假设你是通过故事板设置的?谢谢Andrey-我最终在属性检查器中设置了allowMultipleSelection属性。现在,日志确认按相同的按钮在调用tableView:didSelectRowAt:和tableView:didSelectRowAt:之间交替,但是,当调用tableView:didSelectRowAt时,复选标记不起作用。我还缺少什么?谢谢Andrey-我最终在属性检查器中设置了allowMultipleSelection属性。现在,日志确认按相同的按钮在调用tableView:didSelectRowAt:和tableView:didSelectRowAt:之间交替,但是,当调用tableView:didSelectRowAt时,复选标记不起作用。我还缺什么?
@objc class SomeViewController: UIViewController, NSFetchedResultsControllerDelegate, UITableViewDataSource, UITableViewDelegate {

    var deviceArray:[Device] = []

    // [perform a fetch]
    // [insert fetch results into deviceArray to be displayed in the tableview]

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCell(withIdentifier: "customcell", for:
        indexPath)

        // Set up the cell
        let device = self.deviceArray[indexPath.row]
        cell.textLabel?.text = device.name

        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        self.tableView(tableView, cellForRowAt: indexPath).accessoryType = UITableViewCellAccessoryType.checkmark
        NSLog("Selected Row")
    }

    func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
        self.tableView(tableView, cellForRowAt: indexPath).accessoryType = UITableViewCellAccessoryType.none
        NSLog("Deselected Row")
    }
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    //Notice I use tableView being passed into func instead of self.tableView
    guard let cell = tableView.cellForRow(at: indexPath) else {
        return
    }
    cell.accessoryType = .checkmark

}

func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
    guard let cell = tableView.cellForRow(at: indexPath) else {
        return
    }
    cell.accessoryType = .none
}