Problème obtenir TextField.text d'autres contrôleur de vue
-
22-09-2019 - |
Question
Hé les gars, je suis en train d'ajouter une entrée TextField.text à un tableau. Je veux tirer le TextField.text d'un champ de texte dans une autre vue. Voici mon code.
- (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];
}
Le NSLog dit le mainView.addressTextField.text est (NULL). Qu'est-ce que je fais mal?
La solution
Le problème que je pense est que vous voulez que le texte écrit dans le champ de texte d'un contrôleur de vue qui est en vigueur dans la hiérarchie de votre vue, vous devriez donc obtenir la référence de ce contrôleur de vue.
Mais dans le cas de la vôtre vous ne recevez pas la référence d'un objet existant, plutôt que vous faites un nouvel objet
MultiViewViewController *mainView = [[MultiViewViewController alloc] init];
qui n'est pas l'instance qui a le texte dans son champ de texte.
Hope this helps.
Merci,
Madhup
Autres conseils
Je dois voir -. (Id) méthode init, mais à première vue, il ressemble à addressTextField est un Ivar nul, donc votre NSLog est correcte
Comment avez-vous générer le champ de texte? At-il été généré par programme, ou avec un fichier xib? Si elle était dans un fichier xib, vous devez appeler initWithNibName: paquet:
La propriété text
d'un UITextField à zéro par défaut. Donc, s'il n'y a pas de texte en elle, il devrait en fait être nul.