tableView:didSelectRowAtIndexPath: will only fire for a selection of the row itself within your table view, which doesn't sound like what you're trying to do.
In the method where you create your UISlider instances, you could store those instances as keys in an NSMutableDictionary (using setObject:forKey), with NSNumbers as the values for use in a later switch statement. For each UISlider, make sure that the change in their value is being recorded by setting the target to be a method in the controller using something similar to the following:
[slider addTarget:self action:@selector(sliderValueDidChange:forEvent:) forControlEvents:UIControlEventAllTouchEvents];
and set up a method in your controller similar to this:
- (void)sliderValueDidChange:(id)sender forEvent:(UIEvent *)event;
within which you can use the sender, the NSDictionary of UISlider instances, and a switch statement on the NSNumber's intValue to determine which slider's value has changed and what the new value is.
Instead of an on/off switch, may I also suggest the use of a checkmark as an accessory view? Then, you could use tableView:didSelectRowAtIndexPath: to track user selection of the row and display a checkmark in the accessory view if the element has become selected. This might be more in line with Apple's Human Interface Guidelines.