Soy nuevo en Objective C y cacao. Simplemente no entiendo cómo enviar mensajes a la supervista de una UIView. No puedo hacer que funcione. Esto es lo que he intentado hasta ahora:Cómo mensaje supervista en Objective C
En mi MainView tengo un método resetDrawType llamado:
- (void) resetDrawType {
self.drawType = foo;
}
También en el MainView creo una vista secundaria y agregarlo a MainView:
mySubView *mySubView = [[mySubView alloc] initWithFrame:CGRectMake(foo, foo, foo, foo)];
[self addSubview:mySubView];
[mySubView release];
Luego, cuando la subvista finalice su dibujo, quiero enviar el mensaje resetDrawType a su superview, que es MainView.
yo probamos este
[(MainView*)[self superview] resetDrawType];
y
[(MainView*)self.superview resetDrawType];
... lo que no funcionó. Aprendí sobre protocolos informales, así que agregué este código a MainView.h
@interface NSObject (resetters)
- (void) resetDrawType;
@end
Pero aún nada. siguiente me enteré de esto selector y trató esto en la subvista:
if ([self.superview respondsToSelector:@selector(resetDrawType:)])
[self.superview performSelector:@selector(resetDrawType) withObject:nil];
Es también no funcionaba. ¿Qué estoy haciendo mal? Gracias por tu ayuda.
Gracias. Intenté simplemente enviar el mensaje directamente. Pero no se llama. ¿La supervista también debe ser la vista principal? – rainerkohlberger
Esos dos términos son sinónimos en mi diccionario mental. La supervista es la vista que contiene su vista. ¿Qué esperas que signifique? – Chuck