我有一个UITableViewController,我试图把UIPicker放在它上面。
我创建了一个调用此方法的按钮:
-(void)editTimeClicked:(UIButton *)button{
PickerViewController *pickerVC = [[PickerViewController alloc] initWithNibName:@"PickerViewController" bundle:nil];
UIView *pickerView = pickerVC.view;
pickerView.frame = CGRectMake(0, 200, 320, 216);
[self.view addSubview:pickerView];
}
在我打电话之后,拣货员坐在我想要的地方 - 到目前为止一切都很完美。
但是当我尝试滚动选择器时,应用程序崩溃了。
我没有在滚动上运行的委托方法......它可能是什么?
答案 0 :(得分:0)
您需要在<UIPickerViewDataSource, UIPickerViewDelegate>
中添加.h file
并将delegate and datasource of UIPickerView
视为自我,如
pickerView.delegate = self;
pickerView.dataSource = self;
实施delegate and datasource of UIPickerView
。
答案 1 :(得分:0)
解决了,没有使用其他笔尖的选择器,而是以编程方式创建它。
答案 2 :(得分:0)
不需要不同的xib。
试试这个::
在.h文件中
@property(nonatomic,retain) UIPickerView *pickerView;
在.m文件中
pickerView = [[UIPickerView alloc]initWithFrame:CGRectMake(x, y, w, h)];
pickerView.showsSelectionIndicator = YES;
pickerView.delegate = self;
pickerView.dataSource = self;
......
[self.tableView addSubview:pickerView];
Picker View Methods ::
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
}
- (void)pickerView:(UIPickerView *)pickerView1 didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
}
-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component {
}
-(UIView *)pickerView:(UIPickerView *)pickerView1 viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
}
希望,你明白。
感谢。