Как показать текст UITextField в UILabel? - PullRequest
1 голос
/ 22 февраля 2012

Я создаю интерфейс, в который я могу добавлять события, как в календаре. В AddAEventViewController у меня есть кнопки для установки времени начала, продолжительности и повторения. Каждый раз, когда вы нажимаете кнопку, в контроллере представления появляется UIDatePicker, в котором вы можете установить свое время. Выбранный компонент отображается в UITextField. Теперь, когда я нажимаю кнопку «Готово», он отменяет ModalViewController, и я возвращаюсь к своему AddAEventViewController. Рядом с кнопкой Duration, например является UILabel, где я хочу показать теперь только что выбранный и в текстовом поле отображается продолжительность. Как получить доступ к AddEventViewController из другого ViewController? Я попытался выделить и инициировать новый, но он не работал!

- (IBAction)pressedDoneButton:(id)sender {

 _mainAddWishViewController.labelDuration.text=textFieldDuration.text;

 [self dismissModalViewControllerAnimated:YES];

}

Может кто-нибудь помочь мне, пожалуйста! Спасибо, Жюль

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Есть много способов достичь этого.Вот тот, который довольно прост.

В «дочернем» viewController добавьте свойство делегата и установите его для родительского контроллера представления.

Затем в обработчике кнопки «Готово» сделайте что-то вроде:

[self.delegate performSelector:@selector(didComplete) withObject:self]

В родительском контроллере представления определите метод следующим образом:

- (void) didComplete: (YourSubViewControllerClass *) sender   
{
    self.labelDuration.text = sender.textFieldDuration.text
}

По сути, это реализует неофициальный протокол, посредством которого subViewController сообщает контроллеру основного представления, что он завершени входные значения доступны.

Обратите внимание, что при отмене из subViewController не отправляйте сообщение didComplete.

0 голосов
/ 22 февраля 2012

Есть несколько способов сделать это, все они задокументированы здесь . Их чтение и понимание помогут вам в разработке программного обеспечения для iOS.

...