我试着关注这篇文章Display datepicker on tapping on textfield,当我说到“在XIB中,拉出一个UIToolbar和一个UIDatePicker但不将它附加到视图”时,我迷路了。我正在使用故事板,他正在使用xib。那是问题吗? xib不是我的选择。那么有没有办法拖出日期选择器,但没有附加到视图?
答案 0 :(得分:0)
与故事板的区别在于您将为每个视图使用XIB文件(也称为NIB)。 但是你应该能够遵循任何指示。
在XIB中,拉出UIToolbar和UIDatePicker,但不要附加 它的观点。
我相信他的意思是不要像使用按钮那样连接到ViewController(例如IBAction)
由于您在点击文本字段时显示,因此您必须以编程方式执行此操作。
您无需将其添加到视图中。
答案 1 :(得分:0)
您可以创建一个viewcontroller,其底部有一个日期选择器,顶部有一个关闭按钮。 点击文本字段时,您可以以模态方式显示该视图控制器。
将委托方法设置为viewcontroller: closeButtonClicked:和dateSelected :, 并在主控制器中实现这些委托merhod。
此外,你可以"阻止"通过添加具有特定alpha的datePicker的viewcontroller背景颜色来获得良好的效果。
我发现这是最简单的方法。不需要笔尖
答案 2 :(得分:0)
可能会对你有所帮助..
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
dateActionSheet = [[UIActionSheet alloc]initWithTitle:@"Select Your Date of Birth" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil , nil];
dateActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChangedd:) forControlEvents:UIControlEventValueChanged ];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
[dateActionSheet addSubview:datePicker];
[dateActionSheet addSubview:self.datePickerView];
UIToolbar *tools=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0,320,40)];
tools.barStyle=UIBarStyleBlackOpaque;
[dateActionSheet addSubview:tools];
UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(btnActinDoneClicked)];
doneButton.imageInsets=UIEdgeInsetsMake(200, 6, 50, 25);
UIBarButtonItem *flexSpace= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray *array = [[NSArray alloc]initWithObjects:flexSpace,flexSpace,doneButton,nil];
[tools setItems:array];
//picker title
UILabel *lblPickerTitle=[[UILabel alloc]initWithFrame:CGRectMake(60,8, 200, 25)];
lblPickerTitle.text=@"Select Date of Birth";
lblPickerTitle.backgroundColor=[UIColor clearColor];
lblPickerTitle.textColor=[UIColor whiteColor];
lblPickerTitle.textAlignment = NSTextAlignmentCenter;
lblPickerTitle.font=[UIFont boldSystemFontOfSize:15];
[tools addSubview:lblPickerTitle];
//cell.detailTextLabel.text = [self datePickerValueChangedd:datePicker];
[dateActionSheet showFromRect:CGRectMake(0,480, 320,215) inView:self.view animated:YES];
[dateActionSheet setBounds:CGRectMake(0,0, 320, 411)];
}
-(void)btnActinDoneClicked {
[dateActionSheet dismissWithClickedButtonIndex:1 animated:YES];
[dateActionSheet removeFromSuperview];
}
-(void)datePickerValueChangedd:(UIDatePicker*) datePicker
{
Youytextfield.text = (NSString *)datePicker.date;
}