【问题标题】:UIPickerView not displayingUIPickerView 不显示
【发布时间】:2010-05-02 18:56:32
【问题描述】:

我在 UIView 上有一个 UIPickerView。我在 .h 中实现了它的协议,在 .m 文件中实现了委托:

 <UIPickerViewDataSource, UIPickerViewDelegate>

在 IB 中,我已将上述内容连接到选择器,我也有一个 IBoutlet。方法如下所示:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [self.arr count];
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row  forComponent:(NSInteger)component {
return @"test";
}

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
//do something
}

有什么想法可以让选择器正常工作吗?

【问题讨论】:

  • 在numberOfRowsInComponent中,你验证过self.arr不是nil,实际上有数据吗?
  • 这种方法永远不会成功。没有一个委托方法被击中。
  • 现在有什么问题?

标签: iphone cocoa-touch iphone-sdk-3.0 uipicker


【解决方案1】:

如果委托方法没有被调用,那么在 IB 中仔细检查选择器视图的委托和数据源出口是否连接到文件的所有者。

在.h文件中,picker view outlet应该这样声明:

@property(非原子,保留)IBOutlet UIPickerView *pickerView;

【讨论】:

  • 所有这些都很好。我发现由于某种原因 UIPickerView 没有被初始化。我断开了它的 IBoutlet 并重新连接。现在一切都很好。
  • 这对我没有任何作用。我只是从情节提要中拖出,Xcode 使该属性有点不同。 @property (weak, nonatomic) IBOutlet UIPickerView *departmentPickerView;
【解决方案2】:

您尚未将委托分配给 UIPickerView,这就是没有调用任何委托方法的原因。

 UIPickerView *pickerView;
 pickerView.delegate = self;//write this line in view did load method.

希望这会有所帮助,如果这能回答您的问题,请告诉我..:)

【讨论】:

    【解决方案3】:

    有时是因为pickerview没有连接到文件所有者的数据源和笔尖中的委托

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多