3
-(IBAction)showDate:(id)sender
{
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 220, 325, 300)];
datePicker.datePickerMode = UIDatePickerModeDate;
datePicker.hidden = NO;
datePicker.date = [NSDate date];
[datePicker setDate:datePicker.date animated:YES];
[self.view addSubview:datePicker];
}



- (void)setDate:(NSDate *)date animated:(BOOL)animated
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd/MM/yyyy"];
NSString *str = [df stringFromDate:date];
NSLog(@"String is------:%@",str);
[dateBtn setTitle:str forState:UIControlStateNormal];
}

私は Apple の Doc.Based で UIDatePicker クラスのリファレンスを調べました。上記のコードを実装したことに基づいています。外部メソッド コードがボタン アクションに記述されている場合、ボタンの現在の日付のみを取得し、DatePicker で変更されている場合は日付を変更しません。 .

上記のようなコードを書くと、ボタンのタイトルすら取得できません。私は、間違いを犯したと思います。誰かが間違いの場所を教えて、詳細に説明してもらえますか。

事前に助けてくれてありがとう。

4

2 に答える 2

4

サブクラス化と混同していると思いますが、これはここでは行っていません (そしてする必要もありません)。日付が変更されたときに、選択したメソッドを呼び出すように日付ピッカーをセットアップする必要があります。このようなもの:

[datePicker addTarget:self
               action:@selector(dateChanged:)
     forControlEvents:UIControlEventValueChanged];

(参照を参照してください)。

次に、メソッドを実装します。

- (void)dateChanged:(UIDatePicker*)datePicker {
    NSLog("Date changed: %@", datePicker.date);
}
于 2012-08-21T12:02:55.623 に答える