[新手学ios]第三天:使用tab Bar Controller 实现单组件选择器

上一篇,我们学习如何如果建立tTabbarController 以及如何建立 item与我们需要的视图建立的连接.这一节,我们将会使用picker View 作为控件  实现  单组件选择器.并且使用一个 button按钮,如果点击之后,触发 显示 pickerView 的选择项的操作.

好吧,lets GO!

1.磨刀不误砍柴工.我们需要在xib文件中建立相应的  pickerView 以及button.由于 拖拽控件以及 在声明文件中建立 

如下:

@interface BIDSingleViewController : UIViewController<UIPickerViewDelegate,UIPickerViewDataSource>
@property (strong, nonatomic) IBOutlet UIPickerView *pickerView;

@property (strong,nonatomic)NSArray *pickerData;

- (IBAction)buttonpressed:(id)sender;

的控件建立和属性连接已经很简单了,我就不赘述了.

对了,还多了一个array.因为我们没有数据源了,所以要使用 pickerdata 作为我们的pickerview 数据源. 在哪里初始化呢?下面的代码…你看吧

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    NSArray *array = [[NSArray alloc]initWithObjects:@"lichan",@"zhaomingwei",@"liyang",@"huangwei",@"dongdong",@"laoer", nil];
    
    self.pickerData = array;
    
    // Do any additional setup after loading the view from its nib.
}


我们会发现这个.h文件多了两个协议:<UIpickerViewDelegate,UIpickerViewDataSource>.这使为什么么 ?

上一篇我们直接是搞了一个date picker .这次我们拖得是一个 picker View .也就是说,pickerView 是没有内容的.所以我们需要代码实现 pickerView 的行,列 .下面的小节告诉我们这些协议的作用.


2.协议.我们所写的代码的核心:

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
  //这个函数的作用是 设定 我们的picker 的行的多少.就是一竖串有几个葡萄~~~哈哈
    return [pickerData count];
}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
  //我们想设置多少列呢 ? 
    return 1;
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    return [pickerData objectAtIndex:row];
//返回的必须是 我们选择那行的值啦.

}

其实这里面的协议还有很多的函数,这是最基本的啦.如果这些都没有,我们的picker是显示不了的,亲!


4.然后就是实现 button pressed 之后的操作.这个貌似很简单的样子,就当是复习 UIAlertView了.

- (IBAction)buttonpressed:(id)sender {
    
    NSInteger row = [pickerView selectedRowInComponent:0]; //选择picker view 的列.(因为只有1行,index 是 0 啦).
    NSString *selected = [pickerData objectAtIndex:row];
    //把选择项的内容 选出来.
    NSString *title = [[NSString alloc]initWithFormat:@"you has selected the %@",selected ];
    
    UIAlertView *myAlertView = [[UIAlertView alloc]initWithTitle:title message:@"thanks for selected" delegate:self cancelButtonTitle:@"you are welecme!" otherButtonTitles:nil];
    
    
    [myAlertView show];
    
}

你会发现多了一些代码是不是?  我已经注释了,你看看吧.

上个图吧,够意思吧?




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值