我有两难,我有两个UIPickerViews,当两个不同的视图加载时“显示”。我从一个UIPickerView
开始,并通过在ViewController中加载数组和所有其他UIPickerView
操作来启动并运行。
我认为这就像复制/粘贴新UIPickerView
的相同方法一样简单,只是更改变量名称,也在同一UIViewController
内。
问题是 - UIPickerView
是否在下拉列表中显示相同的数据集?我只是遗漏了一些明显的东西吗?
在下方更新
我为下面的所有四种方法做了这个,现在应用程序在加载“下一个”视图后崩溃了?这看起来不错吗?
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView
- (NSInteger)thePickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component
- (NSString *)thePickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
- (void)thePickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
答案 0 :(得分:13)
是的,您必须使用UIPickerView参数来确定WHICH选择器视图实际上是在寻求数据 - 因为您已将两个选择器都设置为相同的数据源。
-(void)numberOfComponentInPickerView:(UIPickerView*)thePickerView {
if(thePickerView == firstPickerView) {
// return number of components in first picker
} else if(thePickerView == secondPickerView) {
// return number of components in second picker
} else {
assert(NO);
}
}
// repeat for all other delegate / datasource methods