Проблема с получением textfield.text из другого контроллера представления
-
22-09-2019 - |
Вопрос
Привет, ребята, я пытаюсь добавить запись textfield.text в массив.Я хочу извлечь textfield.text из текстового поля в другом представлении.Вот мой код.
- (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];
}
В NSLog указано, что MainView.addressTextField.text равен (NULL).Что я делаю не так?
Решение
Я думаю, проблема в том, что вы хотите, чтобы текст был написан в текстовом поле контроллера представления, который существует в вашей иерархии представлений, поэтому вы должны получить ссылку на этот контроллер представления.
Но в вашем случае вы не получаете ссылку на существующий объект, а создаете новый объект.
MultiViewViewController *mainView = [[MultiViewViewController alloc] init];
это не тот экземпляр, в текстовом поле которого есть текст.
Надеюсь это поможет.
Спасибо,
Мадхуп
Другие советы
Мне нужно было бы увидеть метод - (id)init, но на первый взгляд кажется, что адресTextField является нулевым иваром, поэтому ваш nslog верен.
Как вы создали текстовое поле?Был ли он сгенерирован программно или с помощью файла xib?Если это было в файле xib, вам следует вызвать initWithNibName:bundle:
Тот Самый text
свойство UITextField по умолчанию равно нулю.Таким образом, если в нем нет текста, то на самом деле он должен быть равен нулю.