用户按下按钮时弹出日期选择器[重复]

Posted

技术标签:

【中文标题】用户按下按钮时弹出日期选择器[重复]【英文标题】:Popup datepicker when user presses a button [duplicate] 【发布时间】:2013-03-25 23:19:22 【问题描述】:

我是 ios 的初学者,请帮助我如何在用户按下按钮时显示弹出日历。我已经在下面有我的按钮了

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];

【问题讨论】:

你可以试一试。 github.com/square/objc-TimesSquare 适用于 iphone 或 ipad ?? 看看我的回答 它有效,.great!@manohar 。如果我可以再问一个问题。,如果我希望这个弹出是模态的,我需要设置什么属性,所以后面的按钮不会是可点击的??... 【参考方案1】:

在 .h 文件中

 UIDatePicker *datepicker;
 UIPopoverController *popOverForDatePicker;

请在.h文件中设置Delegate UIPopoverControllerDelegate

在 .m 文件中

- (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]]);

【讨论】:

粘贴后告诉我 它适用于男人......如果可以的话,还有一个问题。,如果我想让这个弹出窗口成为模态,我需要设置什么属性,所以后面的按钮不会是可点击的?? .@Manohar 找不到你..再来一次...模态的意思是?? 这样,当日期选择器弹出时,后面的uiview中的按钮将无法点击... if (popOverForDatePicker.popoverVisible) NSLog(@"Visible"); else NSLog(@"不可见");

以上是关于用户按下按钮时弹出日期选择器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本字段单击时弹出 datePicker 并在编辑完成后消失

Excel中进行插入日期选择器的操作技巧

Android中的日期选择器日期选择[重复]

Datepicker:单击按钮时如何弹出日期选择器并将值存储在变量中[关闭]

EXCEL表里怎么添加日期选择器

引导日期选择器弹出窗口未显示突出显示的当前日期