【问题标题】:how to implement date picker on button click in ios?如何在 ios 中单击按钮时实现日期选择器?
【发布时间】:2014-11-07 07:36:54
【问题描述】:

我正在构建一个 iOS 应用程序。我正在使用情节提要来构建屏幕,并且我制作了一个包含名称、日期、最小值和最大值等字段的表单。

我面临的问题是无法在按钮单击时实现日期选择器,当用户选择日期时,日期选择器隐藏,想要在标签中显示所选日期。

我用谷歌搜索,但找不到好的教程或库。 我只想在选择器中显示日期和日期。

【问题讨论】:

标签: ios iphone forms uidatepicker


【解决方案1】:
-(IBAction)datePickerBtnAction:(id)sender
{
    datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0, 0,10, 50)];
    datePicker.datePickerMode = UIDatePickerModeDate;
    datePicker.hidden = NO;
    datePicker.date = [NSDate date];
    [datePicker addTarget:self action:@selector(labelTitle:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:datePicker];
    rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(save:)];
    self.navigationItem.rightBarButtonItem = rightBtn;       
}

-(void)labelTitle:(id)sender
{
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc]init];
    dateFormat.dateStyle = NSDateFormatterMediumStyle;
    [dateFormat setDateFormat:@"MM/dd/yyyy"];
    NSString *str = [NSString stringWithFormat:@"%@",[dateFormat  stringFromDate:datePicker.date]];
    //assign text to label
    label.text=str; 
}

-(void)save:(id)sender
{
    self.navigationItem.rightBarButtonItem = nil;
    [datePicker removeFromSuperview];       
}

【讨论】:

    【解决方案2】:

    试试这个:

    - (IBAction)date:(id)sender {
        datepicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 250, 325, 300)];
        datepicker.datePickerMode = UIDatePickerModeDate;
        datepicker.hidden = NO;
        datepicker.date = [NSDate date];
    
        [datepicker addTarget:self
                       action:@selector(labelChange:)
             forControlEvents:UIControlEventValueChanged];
        [self.view addSubview:datepicker]; //this can set value of selected date to your label change according to your condition
    
    
           NSDateFormatter *df = [[NSDateFormatter alloc] init];
        [df setDateFormat:@"M-d-yyyy"]; // from here u can change format.. 
        _selectedDate.text = [df stringFromDate:datepicker.date];
    }
    
    - (void)labelChange:(id)sender{
        NSDateFormatter *df = [[NSDateFormatter alloc] init];
        [df setDateFormat:@"M-d-yyyy"];
        _selectedDate.text = [NSString stringWithFormat:@"%@",
                              [df stringFromDate:datepicker.date]];
        [datepicker removeFromSuperview];
    }
    

    【讨论】:

      【解决方案3】:

      你可以使用这个表单中的各种控件

      https://www.cocoacontrols.com/search?utf8=%E2%9C%93&q=datepicker

      【讨论】:

        【解决方案4】:

        添加隐藏的文本字段视图并配置日期选择器。

        [self.xTextFeild setInputView:_datePicker];
        

        然后 当你想调用下面的代码时。

        [self.xTextFeild becomeFirstResponder];
        

        `

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-02
          • 2017-08-12
          相关资源
          最近更新 更多