Время прохождения переменной между двумя UIViewControllers - PullRequest
0 голосов
/ 23 ноября 2011

Не знаю, как задать этот вопрос, чтобы он имел смысл, но позвольте мне попробовать. Мое приложение открывает UIViewController, а затем вызывает другой. Когда он открывает другой, он успешно помещает переменную в текстовое поле. Когда пользователь закрывает второй UIViewController и возвращается к первому UIViewController, я возвращаю переменную и помещаю ее в текстовое поле. Это все успешно на данный момент. Переменная передается туда и обратно без проблем.

Итак, вот что я пытаюсь сделать: возвращаясь к 1-му UIViewController, я запускаю оператор запроса, который использует переменную в текстовом поле в качестве ключа для извлечения записи из таблицы SQLite. Я использую NSLog для проверки кода и вижу, что текстовое поле пусто, но когда появляется UIViewController, переменная находится в текстовом поле.

Пока со мной? Я надеюсь на это ...

Я выполняю запрос в ViewDidLoad. Я думаю, что ViewDidLoad работает, прежде чем он копирует переменную из 2-го в текстовое поле.

Мой главный вопрос: должен ли я выполнять оператор запроса в ViewDidLoad или еще что-нибудь, чтобы получить переменную в текстовом поле. По сути, все, что я хочу сделать - это извлечь запись на основе значения в текстовом поле после возвращения из другого UIViewController.

Спасибо!

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Технически, ваш viewDidLoad не будет вызван, если ваш исходный вид никогда не был отменен.Методы делегата, которые будут вызваны: viewWillAppear: и viewDidAppear:.Вы можете передать значение из второго viewController обратно в первый с помощью специального метода делегата.Следует помнить, что вы должны выполнить запрос с NSString, который вы передаете обратно с помощью метода делегата, и поместить его в textField во время viewWillAppear:.

Надеюсь, это поможет!

1 голос
/ 23 ноября 2011

viewDidLoad вызывается только тогда, когда контроллер вида загружен с кончика. Если вы переключаетесь обратно на один контроллер представления с другого, он не будет выполнен снова. Попробуйте ввести код в viewWillAppear.

...