【问题标题】:Xcode - DatePicker: Show ONLY date string to a labelXcode - DatePicker:仅显示日期字符串到标签
【发布时间】:2017-03-08 14:01:55
【问题描述】:

我有一个应用程序,它有一个 textField,当按下它时,会打开一个 datePicker 供用户选择日期,然后将此信息发送到标签。我只需要获取 DATE 值,但发送的字符串类似于:

<UITextField: 0x7ff66e740bf0; frame = (16 12; 289 30); text = '08/03/2017'; opaque = NO; (...and so on...)

我怎样才能只获得 DATE 字符串?

我的代码是:

 - (void)viewDidLoad 
{
datePicker=[[UIDatePicker alloc]init];
datePicker.datePickerMode=UIDatePickerModeDate;
[self.dia2 setInputView:datePicker];

UIToolbar *toolBar=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
[toolBar setTintColor:[UIColor grayColor]];
UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc]initWithTitle:@"Pronto" style:UIBarButtonItemStyleBordered target:self action:@selector(ShowSelectedDate)];
UIBarButtonItem *space=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
[toolBar setItems:[NSArray arrayWithObjects:space,doneBtn, nil]];
[self.dia2 setInputAccessoryView:toolBar];
}

-(void)ShowSelectedDate
{  
NSDateFormatter *formatter=[[NSDateFormatter alloc]init];
[formatter setDateFormat:@"dd/MM/YYYY"];
self.dia2.text=[NSString stringWithFormat:@"%@",[formatter stringFromDate:datePicker.date]];
mostraData.text=[NSString stringWithFormat:@"%@", _dia2];
[self.dia2 resignFirstResponder];
}

【问题讨论】:

  • 您只是将日期设置为self.dia2.text。但随后您将UITextField (_dia2) 转换为字符串并将其分配给mostraData.text。为什么?
  • 仅供参考 - 您的日期格式错误。你想要@"dd/MM/yyyy"。永远不要使用YYYY。全年使用yyyy

标签: ios string datepicker


【解决方案1】:
mostraData.text=[NSString stringWithFormat:@"%@", _dia2];

正在将文本视图的描述分配给标签,而不是您刚刚添加到文本视图的格式化字符串。

mostraData.text = _dia2.text;

【讨论】:

  • 在正确的解决方案中使用stringWithFormat: 有什么意义?为什么直接访问 ivar 而不是使用属性?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多