Con varios controles en una vista... ¿Quién recibe los eventos?

Para dar las gracias debes entrar o registrarte en el foro

iMiembro
iMiembro
Mensajes: 3 Agradecido: 0
01 Jun 2012, 02:12# 1

Hola!! Tengo una duda horrorosa con los eventos (Delegates), a ver si me la podéis aclarar y corregidme si digo alguna barbaridad, que soy muy novato!

Quiero suponer que los delegares son algo que escucha eventos y los dispara. Pero no tengo muy claro cuando se lanza el evento, ¿quién diablos lo dispara?

Imagino que tengo 2 webview, y si quiero hacer algo con

Código: Seleccionar todo
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    return NO;
}


¿Como discrimino quién ha sido el que lo lanza? En muchos eventos viene en la declaración quién es el sender, pero en este caso, ni una pista...

AAAAAAAAAAAAAAAAAAAAAARGG!
Gracias  
Etiquetado en:
iMiembro 7G
iMiembro 7G
Mensajes: 302 Agradecido: 80
02 Jun 2012, 20:15# 2
haboku escribió:Hola!! Tengo una duda horrorosa con los eventos (Delegates), a ver si me la podéis aclarar y corregidme si digo alguna barbaridad, que soy muy novato!

Quiero suponer que los delegares son algo que escucha eventos y los dispara. Pero no tengo muy claro cuando se lanza el evento, ¿quién diablos lo dispara?

Imagino que tengo 2 webview, y si quiero hacer algo con

Código: Seleccionar todo
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    return NO;
}


¿Como discrimino quién ha sido el que lo lanza? En muchos eventos viene en la declaración quién es el sender, pero en este caso, ni una pista...

AAAAAAAAAAAAAAAAAAAAAARGG!


Así a grandes rasgos, los delegates son métodos personalizados de los eventos de los controles. Esto significa que cuando un evento determinado del control se dispara, hace lo que tenga que hacer más lo que haga tu método delegate.

En el caso que has puesto, sabes qué webview por el parámetro webView (fíjate en -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:... ). Todos los eventos y/o delegates tienen un parámetro que indica el que dispara el evento.

los eventos son por el sender, y los delegates suele ser el primer parámetro.
Gracias  
1 persona ha dado las gracias: haboku
iMiembro
iMiembro
Mensajes: 3 Agradecido: 0
04 Jun 2012, 00:53# 3

Gracias por la respuesta! voy entendiendo...

La gracia es que el evento ese que he puesto se dispara sólo en uno de los webview, y no en el otro. He probado a hacer un setDelegate:self del segundo webview pero al invocarlo me pierde el foco del textinput que puse para poner la url, y se le va la olla un poco.

Tendré que investigar, porque eso de que no saber por qué unas veces detecta los eventos y otras no, me tiene un poco mareado.

Gracias de todas formas!

Gracias  

Publicidad
Publicidad