Question

I want to have a single method for all the buttons (and all their events) of a view. So far this is what I've got:

- (IBAction)uibuttonEvent:(id)idSender forEvent:(UIEvent*)uieventHandle
{
    if (idSender == [self uibuttonConnectInput]) {
        if ([uieventHandle type] == UIEventTypeTouches) {
            [[self uibuttonConnectInput] setTitle:@"did it!" forState:UIControlStateNormal];
        }

    } else if (idSender == [self uibuttonSomething]) {
        ...

    }
}

So now I can detect whether the event is a UIEventTypeTouches or not, but I want to check more specifically whether it is e.g. UIControlEventTouchUpInside - how can I do that?

Was it helpful?

Solution

As discussed here the UIEvent that you get from UIButton doesn't give you any information about which UIControlEvent caused it. Either register separate methods for each event type (the recommended solution) or make your own subclass of UIControl and make it behave differently.

OTHER TIPS

I think you have to give different tag for all that button.

- (IBAction)uibuttonEvent:(id)idSender {
    int iTag =  [sender tag];
}

You can identify which button was pressed.

All the best!!!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top