Ios 当用户按下按钮时弹出日期选择器
我是一个ios初学者,请帮助我如何在用户按下按钮时显示弹出式日历。我的按钮已经在下面了Ios 当用户按下按钮时弹出日期选择器,ios,objective-c,datepicker,Ios,Objective C,Datepicker,我是一个ios初学者,请帮助我如何在用户按下按钮时显示弹出式日历。我的按钮已经在下面了 UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame= CGRectMake(60, 560, 150, 30); [button setTitle:@"Select Date" forState:UIControlStateNormal]; [button addTarget:self action:
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame= CGRectMake(60, 560, 150, 30);
[button setTitle:@"Select Date" forState:UIControlStateNormal];
[button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
在.h文件中
UIDatePicker *datepicker;
UIPopoverController *popOverForDatePicker;
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame= CGRectMake(60, 560, 150, 30);
[button setTitle:@"Select Date" forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor redColor]];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonAction:(UIButton *)sender
{
UIViewController *viewController = [[UIViewController alloc]init];
UIView *viewForDatePicker = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 100)];
datepicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 0, 200, 100)];
datepicker.datePickerMode = UIDatePickerModeDate;
datepicker.hidden = NO;
datepicker.date = [NSDate date];
[datepicker addTarget:self action:@selector(LabelChange:) forControlEvents:UIControlEventValueChanged];
[viewForDatePicker addSubview:datepicker];
[viewController.view addSubview:viewForDatePicker];
popOverForDatePicker = [[UIPopoverController alloc]initWithContentViewController:viewController];
popOverForDatePicker.delegate = self;
[popOverForDatePicker setPopoverContentSize:CGSizeMake(200, 100) animated:NO];
[popOverForDatePicker presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown| UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight) animated:YES];
}
-(void)LabelChange:(id)sender
{
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.dateStyle = NSDateFormatterMediumStyle;
NSLog(@"%@",[NSString stringWithFormat:@"%@",[df stringFromDate:datepicker.date]]);
}
请在.h文件中设置代理UIPopoverControllerDelegate
在.m文件中
UIDatePicker *datepicker;
UIPopoverController *popOverForDatePicker;
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame= CGRectMake(60, 560, 150, 30);
[button setTitle:@"Select Date" forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor redColor]];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)buttonAction:(UIButton *)sender
{
UIViewController *viewController = [[UIViewController alloc]init];
UIView *viewForDatePicker = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 100)];
datepicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 0, 200, 100)];
datepicker.datePickerMode = UIDatePickerModeDate;
datepicker.hidden = NO;
datepicker.date = [NSDate date];
[datepicker addTarget:self action:@selector(LabelChange:) forControlEvents:UIControlEventValueChanged];
[viewForDatePicker addSubview:datepicker];
[viewController.view addSubview:viewForDatePicker];
popOverForDatePicker = [[UIPopoverController alloc]initWithContentViewController:viewController];
popOverForDatePicker.delegate = self;
[popOverForDatePicker setPopoverContentSize:CGSizeMake(200, 100) animated:NO];
[popOverForDatePicker presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:(UIPopoverArrowDirectionUp|UIPopoverArrowDirectionDown| UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight) animated:YES];
}
-(void)LabelChange:(id)sender
{
NSDateFormatter *df = [[NSDateFormatter alloc]init];
df.dateStyle = NSDateFormatterMediumStyle;
NSLog(@"%@",[NSString stringWithFormat:@"%@",[df stringFromDate:datepicker.date]]);
}
你可以试一试。对于iphone或ipad,只要看看我的答案就知道了。很好@manohar.如果可以的话,再问一个问题.,,如果我希望这个弹出窗口是模态的,我需要设置什么属性,这样按钮后面就不能点击了???…只要粘贴这个,让我知道它是有效的…如果可以的话,再问一个问题.,,如果我希望这个弹出窗口是模态的,我需要设置什么属性,,所以后面的按钮是不可点击的???。@Manohara无法找到你。。再来。。。模式意味着??因此,当日期选择器弹出时,后面uiview中的按钮将不可单击…如果(popOverForDatePicker.popoovervisible){NSLog(@“可见”);}否则{NSLog(@“不可见”);}