UIPicker的委托和数据源


这次用UITabBarcontroller,发个IB的连接

今天多视图的连接就没费劲,看来以后简单的多视图能应付得来了


Tab Bar之下的“View Controller”要更改所属类 ,还要更改所加载nib文件的名称



UIDatePicker简单,拖进去直接用

能通过@property date读写日期时间

[datePickersetDate:nowanimated:YES];

NSDate* date =datePicker.date



UIPickerView,需要设置好委托和数据源才能工作,否则不能显示picker或者crash

1.UIPickerView的初始化

	pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0f, 200.0f, 320.0f, 216.0f)];
	pickerView.delegate = self;  //指定Delegate
	pickerView.showsSelectionIndicator = YES; //显示选中框

2.实现UIPickerViewDelegate和UIPickerViewDataSource

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; //返回列数

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; //返回每列的最大行数

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; //每一列中每一行的具体内容

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component //选中哪一列哪一行


IB中PickerView的Outlet指向选取器,选取器的Delegate和DataSource连到File's Owner


不过高潮是selectedRowInComponent方法:

NSInteger row = [self.singlePickerselectedRowInComponent:0];

就因为少了“self.”,编译器就把singlePicker认成类方法了……一直报错找不到该类方法

以后注意重名的问题,这回比较2……


用下面这个方法能获得所选取的值

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component

{

    NSLog(@"row = %d",row);//=>这里获取的row都是正确的

}







你可能感兴趣的:(Objective-C基础,date,crash,编译器,file,工作)