tableViewController上的pickerView

时间:2013-03-15 12:19:50

标签: iphone xcode

我有一个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];
}

在我打电话之后,拣货员坐在我想要的地方 - 到目前为止一切都很完美。

但是当我尝试滚动选择器时,应用程序崩溃了。

我没有在滚动上运行的委托方法......它可能是什么?

3 个答案:

答案 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 {
}

希望,你明白。

感谢。