Как вы уведомите контроллер представления о том, что в UIPickerView выбрана строка? - PullRequest
0 голосов
/ 04 июня 2011

Как я могу уведомить свой контроллер представления и передать ему строку, когда строка была выбрана в моем UIPickerView?

У меня есть пользовательский UIPickerView в обычном представлении и у меня есть пользовательский источник данных / делегат в другом классе.

Как я могу уведомить свое мнение во время метода делегата pickerView:didSelectRow:inComponent:?и передать выбранную строку в контроллер представления?

Ответы [ 3 ]

1 голос
/ 04 июня 2011

Для этого вам нужно создать один метод в пользовательском классе, как показано ниже:

.h file id parent;

.m file

 -(void)initWithPageNumber:(id)pidParent{
      parent=pidParent
}

Затем вы установили метод делегата программно, как показано ниже: uipickerview.delegate = parent;uipickerview.datasource = parent;

Надеюсь, это будет полезно.

Дайте мне знать, если возникнут трудности.

1 голос
/ 04 июня 2011

Вы можете сделать это, используя отправку и наблюдение за уведомлением, используя центнет NSNOtification или создав протокол делегата.Изучите протоколы делегатов, которые полезно изучить в target-c.

1 голос
/ 04 июня 2011

Класс, соответствующий делегатам выбора, реализует

pickerView:didSelectRow:inComponent:

чтобы узнать, какая строка (или строка) была выбрана в средстве выбора.

Если какой-то другой класс из внешнего мира хочет знать, какая строка была выбрана, то этот класс, в свою очередь, должен сообщить об этом. Это создаст цепочку делегирования.

Например, если pickerClass - это класс, реализующий метод делегата. Если какой-то другой класс (скажем, outsideClass) хочет знать, какая строка была выбрана, вы должны сделать этот делегат outsideClass для pickerClass и передать ему это сообщение.

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
[_pickerClassDelegate pickerClass:self didSelectRow:row inComponent:component];
}
...