Как связать данные текстового поля между двумя представлениями? - PullRequest
0 голосов
/ 26 марта 2011

Привет и заранее спасибо за любые ответы.

Я работаю с двумя UIViews с Ipad.Если пользователь вносит изменения в текстовое поле в одном представлении, я хочу, чтобы эти изменения отображались в текстовом поле другого представления.У меня есть одно текстовое поле в каждом представлении.В IB я дал им тот же тег и текстовое поле делегата.У меня есть только один IBOutlet, но я не думаю, что можно подключиться к обоим текстовым полям?Я пробовал IBOutletCollection, но он не поддерживает текстовые поля.Я не знаю, куда идти отсюда? Что мне делать?Любой совет приветствуется! Спасибо!

Ответы [ 2 ]

1 голос
/ 26 марта 2011

Ответ - это привязка к KVO (Key-Value-Observation). Идея заключается в следующем: один объект наблюдает за изменениями свойства другого объекта.

Посмотрите KVO и привязки на iPhone на Mindsizzlers.com или взгляните на книгу «Шаблоны проектирования какао», глава 32 «Связывания и контроллеры».

0 голосов
/ 26 марта 2011

Вы можете использовать методы делегата UITextField для обнаружения изменений текста в одном текстовом поле и обновления другого. Приведенный ниже метод вызывается каждый раз, когда символ вводится в одно из текстовых полей (при условии, что вы установили контроллер представления в качестве делегата UITextField):

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    // Here you can run your logic to detect which textField has changed (using tags)
    // And update them accordingly.
}
...