Problema obter textfield.text de outro controlador de exibição
-
22-09-2019 - |
Pergunta
Ei pessoal, estou tentando adicionar uma entrada de textfield.text a uma matriz. Eu quero puxar o campo de texto.Text de um campo de texto em outra visualização. Aqui está o meu código.
- (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];
}
O NSLog diz que o MainView.AddressTextfield.text é (nulo). O que estou fazendo errado?
Solução
O problema que acho que você deseja que o texto escrito no campo de texto de um controlador de exibição que exista em sua hierarquia de visualizações, para que você obtenha a referência desse controlador de exibição.
Mas no seu caso, você não está obtendo a referência de um objeto existente, mas está fazendo um novo objeto
MultiViewViewController *mainView = [[MultiViewViewController alloc] init];
Qual não é a instância que possui texto em seu campo de texto.
Espero que isto ajude.
Obrigado,
Madhup
Outras dicas
Eu teria que ver o método - (id) init, mas à primeira vista, parece que o endereçotextField é um Nil Ivar, portanto o seu NSLog está correto.
Como você gerou o campo de texto? Foi gerado programaticamente ou com um arquivo XIB? Se estiver em um arquivo XIB, você deve ligar para initWithnibName: pacote:
o text
Propriedade de um Uitextfield em NIL por padrão. Portanto, se não houver texto nele, ele deve realmente ser nulo.