Eureka
Eureka copied to clipboard
SwitchRow Not responding to second time from user interaction
Describe the bug SwitchRow Not responding to second time from user interaction
To Reproduce Steps to reproduce the behavior:
- change switch value by clicking, code in the onChange function will be executed
- See error: code in the onChange function will not be executed when you change again switch value by clicking,
Expected behavior execute the code statement in onChange function each time value change of the switch
Screenshots
SwitchRow(InteractionFormFieldsIds.followupCompletedShortcut.value) {
$0.title = "Follow Up Completed"
}.onChange({ row in
if let switchValue = row.cell.switchControl?.isOn {
if switchValue == true {
row.cell.switchControl.setOn(false, animated: true)
DispatchQueue.main.async {
self.tableView.reloadData { /* Complete reloading */ }
}
}
}
}
})
Versions (please complete the following information):
- Device: iPad
- OS: iOS 16.0
- Eureka Version 5.2.1
- Xcode version 14.1
Hi @amrangry you can try one of the examples and see that SwitchRow works correctly and onChange is called each time the user taps the switch. Even with your code it works for me.
However why are you changing the switch value from inside onChange?
Also, you probably want to build on row.value
instead of row.cell.switchControl?.isOn