如何通知视图控制器在UIPickerView中选择了一行?

时间:2011-06-04 10:52:20

标签: iphone ios4 uipickerview

如何在UIPickerView中选择行时通知我的视图控制器并将字符串传递给它?

我在常规视图中有自定义UIPickerView,并且我在另一个类中有自定义数据源/委托

如何在pickerView:didSelectRow:inComponent:委托方法期间通知我的观点?并将选定的字符串传递给视图控制器?

3 个答案:

答案 0 :(得分:1)

符合选择器委托的类将实现

pickerView:didSelectRow:inComponent:

知道在选择器中选择了哪一行(或字符串)。

如果来自外界的其他一些类想知道选择了哪一行,那么这个类又需要通知。这将创建一个授权链。

例如,如果pickerClass是实现委托方法的类。如果其他一些类(比如outsideClass)想要知道选择了哪一行,那么你可以将这个外部类委托给pickerClass并传递给它。

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

答案 1 :(得分:1)

为此,您必须在自定义类中创建一个方法,如下所示:

.h文件 id parent;

.m文件

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

然后您以编程方式设置委托方法,如下所示: uipickerview.delegate = parent; uipickerview.datasource = parent;

希望它会有所帮助。

如遇到困难,请告诉我。

答案 2 :(得分:1)

您可以通过使用NSNOtification centet发布和观察通知或创建委托协议来实现此目的。研究委托协议,这是在objective-c中学习的好东西。