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都是正确的

}







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值