我将UITableViewCell
的{{1}}的值设置为当前日期,然后允许用户使用detailTextLabel
修改该日期。我像这样设置文本标签
UIDatePicker
这会正确设置文本标签,并显示NSDate *currentDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a MM/dd/YYYY"];
cell.detailTextLabel.text = [dateFormatter stringFromDate:currentDate];
之类的内容。这是所需的输出。当用户选择此单元格时,我希望将日期选择器的08:20 AM 08/07/2015
属性设置为单元格中显示的日期。为实现这一点,我在date
方法
tableView:didSelectRowAtIndexPath:
但是,不是将日期设置为单元格中的日期,而是将选择器的日期设置为NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm a MM/dd/YYYY"];
NSString *dateString = [tableView cellForRowAtIndexPath:indexPath].detailTextLabel.text;
self.datePicker.date = [dateFormatter dateFromString:dateString];
,而不是它应该是什么。记录08:20 AM 12/21/2014
输出表视图单元格中的正确字符串。
我有没有理由遇到这个问题?
答案 0 :(得分:2)
而不是@“hh:mm MM / dd / YYYY ”格式化程序尝试使用@“hh:mm MM / dd / yyyy ”。
根据Apple的文档:
“常见的错误是使用YYYY.yyyy指定日历年,而YYYY指定年份(”年度周“),在ISO年 - 周日历中使用。在大多数情况下,yyyy和YYYY产生相同的数字,但它们可能不同。通常你应该使用日历年。“
答案 1 :(得分:1)
格式化程序字符串的年份部分应为yyyy
,而不是YYYY
。