2012-10-06 63 views
0

我有一个UIDatePicker,并尝试基于用户选择的日期实时更新UILabel。如果用户选择一个日期(例如2012年1月21日),然后改变主意(例如2013年3月21日),我希望UILabel能够反映这一变化。UIDatePicker未更新UILabel

到目前为止,即使在用户从UIDatePicker中选择了另一个日期之后,UILabel也只是反映了当前日期并且不会更新它的文本。我也搜索了一些指针来解决这个问题,但无济于事。任何帮助将不胜感激。谢谢。

到目前为止的代码: .h文件中,我有

@property (strong, nonatomic) IBOutlet UILabel *entryDateSetLabel; 
@property (strong, nonatomic) IBOutlet UIDatePicker *entryDateSelected; 

- (IBAction)datePickerDateChanged:(id)sender; 

的datePickerDateChanged被挂在值改变事件的日期选择器

.m文件,

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.entryDateSelected = [[UIDatePicker alloc] init]; 

    [self.entryDateSelected addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:UIControlEventValueChanged]; 
} 

- (IBAction)datePickerDateChanged:(id)sender { 

    NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init]; 
    [outputFormatter setDateFormat:@"MMMM d, yyyy"]; 

    NSString *entryDateInString = [outputFormatter stringFromDate:self.entryDateSelected.date]; 

    [[self entryDateSetLabel] setText: entryDateInString]; 
} 

屏幕截图

enter image description here在“数值改变”事件enter image description here

+0

在“Value change”事件中连接数据选取器 – Vishal

回答

2

连接数据选择器和

使用此代码我复制它从其他所以我只好做了一些变化

NSDate *today1 = pkrViewDate.date; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MMMM dd, yyyy"]; 
NSString *dateString11 = [dateFormat stringFromDate:today1]; 
lblDate.text=dateString11; 

ANS还要检查,当你滚动日期选择器“datePickerDateChanged”方法正在调用或不。

+0

这里是“pkrViewDate”是UIDatePicker的名称。 – Vishal

+0

嗨Vishal,感谢您的帮助...我已经把我的日期选择器连接到Value Changed事件。我了解你的答案,除了'obj_AppDelegate.strIncomeDate'位。你能再解释一下吗?谢谢 – zoey

+0

我告诉你我复制了它.....所以“obj_AppDelegate.strIncomeDate = dateString11;”这段代码不是你需要的......但是在那一行中,我将“dateString11”的值赋给AppDelegate中声明的“strIncomeDate”。 – Vishal

0

只是解决了这个问题。 :-)

的viewDidLoad中应该读

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    NSDate *now = [NSDate date]; 
    [_entryDateSelected setDate:now animated:YES]; 

    //self.entryDateSelected = [[UIDatePicker alloc] init]; 

    [self.entryDateSelected addTarget:self action:@selector(datePickerDateChanged:) forControlEvents:UIControlEventValueChanged]; 
} 

希望这有助于别人在那里。