1.在main.storyboard 或者viewcontroller.xib 拖出一个UIPickerView 控件和button 控件;
如图

2.
1 选中Picker View控件,
2 打开Connections Inspector,
3 4 找到delegate和datasource,从它们右边的圆圈拉线到File’s Owner:
如图
3.在当前视图view 的头文件DebbieViewController.h
添加委托
<UIPickerViewDelegate,UIPickerViewDataSource>
同时添加了pickerview 所需的数据源;
#import <UIKit/UIKit.h> @interface DebbieViewController : UIViewController<UIPickerViewDelegate,UIPickerViewDataSource>
@property (weak, nonatomic) IBOutlet UIPickerView *mPickerview;
@property (weak, nonatomic) IBOutlet UIButton *show;
@property (strong,nonatomic) NSArray *datasourse;
@end
4.在当前的视图view的 DebbieViewController.m
实现委托的方法
#pragma mark - #pragma mark Picker Data Source Methods - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { return 1; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return [datasourse count]; } #pragma mark Picker Delegate Methods - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return [datasourse objectAtIndex:row]; }
4.为pickview 设置数据源;
@synthesize datasourse; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSArray *dataarray=[[NSArray alloc] initWithObjects: @"one",@"two",@"three",@"four",@"fire" ,nil]; self.datasourse=dataarray; }
5. 显示选择的结果;
-(void) showselect{ NSInteger row = [self.mPickerview selectedRowInComponent:0]; NSString *selected = [datasourse objectAtIndex:row]; NSString *msg = [[NSString alloc] initWithFormat: @"You selected %@!", selected]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello!" message:msg delegate:nil cancelButtonTitle:@"Yes, I Did." otherButtonTitles:nil]; [alert show]; }

浙公网安备 33010602011771号