I am attempting to use a UISegmentedControl to control the sort order of my table, in particular I want to register a tap on a segment that is already selected (to inverse my sort). As such, I am trying to raise an UIControlEvent.ValueChanged event whenever any segment is tapped.
I have overridden SelectedSegment from UISegmentedControl and am using this custom class for my element in xcode, however, it appears as though this code is not called when the the Segment control is tapped (It is called when the view is loaded though =S).
[Register("ReselectableSegment")]
public class ReselectableSegment : UISegmentedControl
{
static Selector selInit = new Selector("init");
[Export("init")]
public ReselectableSegment()
: base(NSObjectFlag.Empty)
{
Handle = Messaging.IntPtr_objc_msgSend(this.Handle,
selInit.Handle);
}
public ReselectableSegment (IntPtr handle) : base(handle){}
public override int SelectedSegment
{
[Export ("SelectedSegment:")]
set {
if(this.SelectedSegment == value)
this.SendActionForControlEvents(UIControlEvent.ValueChanged);
base.SelectedSegment = value;
}
}
}
This question has been asked before at: UISegmentedControl register taps on selected segment, however that question is for ObjC and this question is for C#/Monotouch.