2010-04-16 10 views
5

Ho un requisito in cui ho un campo di testo in una vista. Quando voglio aprire la vista cambiando la scheda (TabBased Application), la prima volta che viene caricata la vista, la tastiera appare perché viene chiamato il metodo loadview. Ma quando si passa a tab2 e di nuovo si passa nuovamente a tab1, la vista di caricamento non viene chiamata. Voglio che la tastiera appaia ogni volta che apro la pagina tab1.Come si apre la vista con la tastiera che appare quando la vista è già caricata?

risposta

10

Uso -viewWillAppear: nel vostro controller della vista per inviare il campo di testo di un messaggio -becomeFirstResponder, ad esempio:

- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [myTextField becomeFirstResponder]; 
} 
+0

ho fatto la stessa cosa ... Ma metodo viewWillAppear non è chiamato ogni volta ...... Ecco il codice - (vuoto) viewWillAppear: (BOOL) animato { [super viewWillAppear: animato]; \t [searchForProduct becomeFirstResponder]; } Please Help –

+1

Il codice dovrebbe funzionare, presupponendo che tutti gli oggetti siano istanziati e cablati. Prova ad aggiungere un'istruzione 'NSLog' per verificare che' -viewWillAppear: 'venga chiamato. Assicurati inoltre che 'searchForProduct' non sia' nil' e/o che sia collegato correttamente se stai usando Interface Builder per la tua vista. –

+0

searchForProduct non è stato rilasciato .. Contiene l'allocazione di memoria ... Il problema è viewWillAppear Method non viene mai chiamato ... –

Problemi correlati