2011-06-16 5 views
6

En el siguiente ejemplo de código, deseo poder llamar a backgroundTap desde otra función btnSubmitLoginPassword. ¿Qué parámetro debería aprobar?¿Cómo llamar a una función de Id id desde otra función?

-(IBAction) backgroundTap:(id)sender{ 

    [userName resignFirstResponder]; 
    [password resignFirstResponder]; 

} 

-(IBAction) btnSubmitLoginPassword{ 

    [self backGroundTap:?????????] 


    [self validate]; 


} 

Respuesta

14

respuesta de pengone es bueno, pero la respuesta precisa a su pregunta es: Paso de nil para el parámetro remitente:

[self backgroundTap:nil]; 
+0

+1: No respondí al pregunta, trabajé alrededor de eso. Usted lo respondió, y correctamente. – PengOne

+0

Prefiero usarlo de esta manera, ya que me permite cambiarlo más tarde mucho más fácil – petershine

5

No está utilizando sender en la acción, así que ¿por qué no lo deja salir?

-(IBAction) backgroundTap{ 
    [userName resignFirstResponder]; 
    [password resignFirstResponder]; 
} 

-(IBAction) btnSubmitLoginPassword{ 
    [self backGroundTap]; 
    [self validate]; 
} 
2

no está utilizando el valor id en el método

-(IBAction) backgroundTap:(id)sender 
    { 

    [userName resignFirstResponder]; 
    [password resignFirstResponder]; 

    } 

en lugar de utilizar como

-(IBAction) backgroundTap 
    { 

    [userName resignFirstResponder]; 
    [password resignFirstResponder]; 

    } 

y luego hacen llamar como

-(IBAction) btnSubmitLoginPassword{ 

    [self backGroundTap]; 

    [self validate]; 
    } 

si quieres cambiar/acceder a la propiedad del remitente solo entonces usted sho uso ULD (id) emisor

+2

Parece familiar: http://stackoverflow.com/questions/6367468/how-to-id-fun-sender-function-from-another-function/6367493#6367493 – PengOne

2

Por lo general, el parámetro emisor es UIView o cualquier otro objeto que genera el evento. En este caso, sería consecuente usar self como remitente.

Cuestiones relacionadas