CC.*_*CC. 21 oop iphone objective-c
我想使用相同的viewController在同一视图中创建2个单独的选择器.但是如何为它们设置单独的委托和数据源?
似乎无法让它工作.它们显示相同的数据.如果您有任何示例代码,将非常感谢.
谢谢.
Mas*_*aro 31
请注意,数据源和委托协议的每个方法都包含一个UIPickerView *参数,例如:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
Run Code Online (Sandbox Code Playgroud)
您需要使用它来区分您的两个实例,如下所示:
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
if([pickerView isEqual: pickerOne]){
// return the appropriate number of components, for instance
return 3;
}
if([pickerView isEqual: pickerTwo]){
// return the appropriate number of components, for instance
return 4;
}
}
Run Code Online (Sandbox Code Playgroud)
Jab*_*Jab 15
最直接的方法是使用tagpickerView 的属性.我通常在标题中定义这些以便于阅读.您可以在Interface Builder或代码中设置标记.
#define kPickerOne 0
#define kPickerTwo 1
Run Code Online (Sandbox Code Playgroud)
然后在你的实现文件中......
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
if(pickerView.tag == kPickerOne)
{
// do something with picker one
}
else if(pickerView.tag == kPickerTwo)
{
// the other picker
}
}
Run Code Online (Sandbox Code Playgroud)