未调用UIPickerView Delegate和DataSource方法

时间:2011-09-01 07:16:52

标签: objective-c xcode uibutton uipickerview

我想在单击按钮时显示PickerView。 我有一个有3个按钮的视图。在对按钮的相应操作中,我已经分配并初始化了pickerView,如下所示:      pickerView = [[UIPickerView alloc] init]; 我还将PickerView添加到子视图中,如下所示:      [self.view addSubview:pickerView];

我还使用UIPickerViewDataSource和UIPickerViewDelegate对我的类进行了子类化,如下所示:      MyClass:UIViewController

通过NSLoging,我发现没有调用PickerView DataSource和Delegate方法。 当我点击(TouchUpInside)按钮时,视图显示pickerView,其中origin =(0,0)应位于底部,pickerView显示为总黑色。我使用以下方法修复了PickerView的框架:      pickerView.frame = CGRectmake(0,180,320,260);

我用Google搜索检查pickerView的DataSource和Delegate方法何时被调用,但我找不到合适的答案。

我在这里尝试了“隐藏”属性如下:  在viewDidLoad方法中:      pickerView.hidden = YES;  在单击按钮后调用的方法中:      pickerView.hidden = NO;

请帮帮我。我是Objective C的新手。

1 个答案:

答案 0 :(得分:4)

如果以编程方式创建选择器 - 您是否实际设置了其委托和dataSource?

// Assuming that delegate and data source is controller where picker is created
pickerView.delegate = self;
pickerView.dataSource = self;