Ios 单击UIBarButtonim时显示UIDatePicker及其工具栏
在我的应用程序的ViewController中,我有3个不同的项目:Ios 单击UIBarButtonim时显示UIDatePicker及其工具栏,ios,uibarbuttonitem,uidatepicker,Ios,Uibarbuttonitem,Uidatepicker,在我的应用程序的ViewController中,我有3个不同的项目: @property (weak, nonatomic) IBOutlet UIBarButtonItem *dateSelect; @property (weak, nonatomic) IBOutlet UIToolbar *dateToolbar; @property (weak, nonatomic) IBOutlet UIDatePicker *datePicker; 这3个项目也在我的故事板文件中定义 我需要能够在
@property (weak, nonatomic) IBOutlet UIBarButtonItem *dateSelect;
@property (weak, nonatomic) IBOutlet UIToolbar *dateToolbar;
@property (weak, nonatomic) IBOutlet UIDatePicker *datePicker;
这3个项目也在我的故事板文件中定义
我需要能够在单击dataSelect UIBarButtonItem时显示datePicker和dateToolbar
在上一个项目中,我使用UITextField的inputView显示了dataPicker及其工具栏(带有“ok”和“cancel”按钮)
self.date.inputView = self.datePicker;
self.date.inputAccessoryView = self.dateToolbar;
由于UIBarButtonim没有任何inputView属性,有没有类似的方法可以做到这一点?我建议的方法是使用选择器和工具栏定义一个视图控制器,并将其显示在popover中 因此,在按钮按下动作中,您可以通过显示此弹出框来显示/添加值
在这种方法中,撤销和传递值需要委托。这是一种可重用的方法我认为您应该设置UIBarButtonItem的目标操作来创建选择器
-(void) createPicker {
datePicker = [[UIPickerView alloc] init];
datePicker.frame = CGRectMake(0, 200, 320, 240);
datePicker.delegate = self;
datePicker.dataSource = self;
datePicker.showsSelectionIndicator = YES;
[self.view addSubview:datePicker];
if(!_isToolBarShow) {
_isToolBarShow = YES;
toolDismiss.frame = CGRectMake(0, 160, 320, 40);
}
}
要删除,您可以将目标操作赋予“确定/取消”按钮
- (IBAction) dismissKeyBoardBtnAction:(id)sender {
if (datePicker != nil) {
[datePicker removeFromSuperview];
[datePicker release];
datePicker = nil;
_isToolBarShow = NO;
toolDismiss.frame = CGRectMake(0, 480, toolDismiss.frame.size.width, toolDismiss.frame.size.height);
}
}