1

我想在静态单元格上显示从 UIDatePicker 挑选的日期。

屏幕

问题代码如下。我想self.label.text通过使用 UIDatePicker 更改日期来更改,但它不会改变。

- (IBAction)inputDate:(id)sender {
    self.label.text = [NSString stringWithFormat:@"%@", self.datePicker.date];
}
  • 方法inputDate:连接到 UIDatePicker。
  • 属性datePicker也连接到 UIDatePicker。

有什么特定的方法可以改变静态单元格吗?谢谢你的好心。


4

2 回答 2

1

我建议您将要更改的单元格作为 ivar 存储在表格视图中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //...
    // configure your birth date cell
    self.birthDateCell = cell;
    //...
}

然后你的方法看起来像:

- (IBAction)inputDate:(id)sender {
    self.birthDateCell.label.text = [NSString stringWithFormat:@"%@", sender.date];
}

那应该这样做。此外,请确保您使用日期选择器的适当事件操作调用 inputDate 函数。

编辑:此外,您可能需要重新加载单元格以显示数据,如下所示:

- (IBAction)inputDate:(id)sender {
    self.label.text = [NSString stringWithFormat:@"%@", sender.date];
    [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] 
                      withRowAnimation:NO];
}
于 2012-08-02T03:08:08.620 回答
1

仅一行代码就解决了问题。Stunner 的建议对这个最终答案非常有帮助。

- (IBAction)inputDate:(id)sender {
    self.label.text = [NSString stringWithFormat:@"%@", self.datePicker.date];
    [self.tableView reloadData]; // <- add this row !
}

截屏

于 2012-08-02T10:04:47.757 回答