NSString和TableView单元格文本

时间:2010-11-07 19:54:01

标签: iphone objective-c

我有一个字符串,其值不断更改/更新,我希望将其绑定到我的cell.textLabel.text。我怎么能这样做?

这类似于我们在iphone上的日期选择器......每当我们更改选择器视图值时,单元格都会更新

这是我如何制定的:

@interface DatePickerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
    UITableView * date;
    UIDatePicker * datePicker;
    NSString * dateString;
}

@property(nonatomic, retain) IBOutlet UITableView * date;
@property(nonatomic, retain) IBOutlet UIDatePicker * datePicker;


- (IBAction)dateChangedAction:(id)sender;

@end

2 个答案:

答案 0 :(得分:1)

由于您使用的是日期选择器

// when creating datePicker object
[datePicker addTarget:self action:@selector(changeDateInCell:)
     forControlEvents:UIControlEventValueChanged];

创建响应事件的方法

- (void)changeDateInCell:(id)sender{
     //Use NSDateFormatter to get string
     NSDateFormatter *df = [[NSDateFormatter alloc] init];
     df.dateStyle = NSDateFormatterMediumStyle;
     NSString * text = [NSString stringWithFormat:@"%@", 
                                        df stringFromDate:datePicker.date]];

     // do something to set the cell data with the text...

     // clean up
     [df release];

}

答案 1 :(得分:0)

如果字符串是某个对象的属性(或者可以这样暴露),我将使用键值观察器(KVO)。使用addObserver:forKeyPath:options:context:当属性值发生变化时,您可以获得回调(observeValueForKeyPath:ofObject:change:context :),并相应地更新单元格。如果您的单元格是自定义单元格,则可以将该功能包装在单元格中,否则可以将其放置在视图控制器中。