titlelabel color buttons iphone objective-c cocoa-touch uibutton uicontrol

iphone - color - UIControl-cambio de selectores asignados: addTarget & removeTarget



titlelabel swift (2)

Sí, deberá eliminar el viejo objetivo / acción o se realizarán tanto las acciones antiguas como las nuevas.

Estoy usando 10 botones en mi interfaz y necesito, de vez en cuando, cambiar el selector del botón.

¿Tengo que usar:

-(void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

antes de cambiar el selector o puedo simplemente usar:

-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents

Me preocupa que si cambio el selector usando el método addTarget: method sans the removeTarget: que esencialmente "apilaré" selectores para que mi UIButton se dispare cuando se presiona.


Sí, siempre debe eliminar el objetivo agregado anteriormente antes de asignar el nuevo destino al botón. Me gusta esto---

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [btn setFrame:CGRectMake(50, 50, 200, 50)]; [btn setTag:101]; [btn addTarget:self action:@selector(method1) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; btn = (UIButton *)[self.view viewWithTag:101]; [btn removeTarget:self action:@selector(method1) forControlEvents:UIControlEventTouchUpInside]; [btn addTarget:self action:@selector(method2) forControlEvents:UIControlEventTouchUpInside];

ahora si haces esto

btn = (UIButton *)[self.view viewWithTag:101]; [btn addTarget:self action:@selector(method2) forControlEvents:UIControlEventTouchUpInside];

entonces se llamarán los métodos method1 y method2.

Espero que esto ayude.