Problema ottenere TextField.text da altri controller della vista
-
22-09-2019 - |
Domanda
Ciao ragazzi, sto cercando di aggiungere una voce TextField.text a un array. Voglio tirare il TextField.text da un campo di testo in un altro punto di vista. Ecco il mio codice.
- (void)addBookmark{
MultiViewViewController *mainView = [[MultiViewViewController alloc] init];
if (mainView.addressTextField.text.length>1) {
NSString *addedString = [[NSString alloc] initWithFormat:@"%@", mainView.addressTextField.text];
[bookmarksArray addObject:addedString];
NSLog(@"addBookmark being called %@", mainView.addressTextField.text);
}
[bmTableView reloadData];
}
Il NSLog dice che il mainView.addressTextField.text è (NULL). Che cosa sto facendo di sbagliato?
Soluzione
Il problema che penso è che si desidera che il testo scritto nel campo di testo di un controller della vista che è esistente nella gerarchia vista, così si dovrebbe ottenere il riferimento di tale controller della vista.
Ma nel caso del tuo non si è trovato il riferimento di un oggetto esistente, piuttosto si sta realizzando un nuovo oggetto
MultiViewViewController *mainView = [[MultiViewViewController alloc] init];
, che non è l'istanza che ha il testo nel suo campo di testo.
Spero che questo aiuti.
Grazie,
Madhup
Altri suggerimenti
avrei dovuto vedere il -. (Id) metodo init, ma a prima vista, sembra che addressTextField è un ivar nullo, così il vostro NSLog è corretto
Come hai fatto a generare il campo di testo? Era generato a livello di codice, oppure con un file XI ter? Se fosse in un file XI ter, si dovrebbe chiamare initWithnibName: bundle:
La proprietà text
di un UITextField a zero per impostazione predefinita. Quindi, se non v'è alcun testo in esso, dovrebbe in realtà essere pari a zero.