             cell.valueSwitch.tag = indexPath.row
             cell.valueSwitch.removeTarget(self, action: #selector(didChange(valueSwitch:)), for: .allEvents)
             cell.valueSwitch.addTarget(self, action: #selector(didChange(valueSwitch:)), for: .valueChanged)
+
+            if !self.isEditable {
+                cell.isUserInteractionEnabled = false
+            }
 
             return cell
         case let customField as CustomViewControllerField:

    public var onBack: ((_ canceled: Bool) -> ())?

    let nameLabelWidth: CGFloat

    public init(form: Form) {
        self.nameLabelWidth = FormViewController.calculateMaximumLabelWidth(for: form)
        self.form = form

        super.init(style: .grouped)
    }

            cell.segmentedControl.removeTarget(self, action: #selector(didChange(segmentedControl:)), for: .allEvents)
            cell.segmentedControl.addTarget(self, action: #selector(didChange(segmentedControl:)), for: .valueChanged)
            cell.nameLabelWidth = self.nameLabelWidth

            if !self.isEditable {
                cell.isUserInteractionEnabled = false
            }

            return cell
        default:
