0

UIDatePickerがあり、ユーザーが選択した日付に基づいてUILabelをリアルタイムで更新しようとしています。ユーザーが1つの日付(たとえば2012年1月21日)を選択してから(たとえば2013年3月21日)に気が変わった場合、UILabelに変更を反映させたいと思います。

これまでのところ、UILabelは現在の日付を反映するだけで、ユーザーがUIDatePickerから別の日付を選択した後でもテキストを更新しません。私はこれを修正するためにポインタを検索しましたが、役に立ちませんでした。どんな助けでもありがたいです。ありがとう。

これまでのコード:.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];
}

スクリーンショット

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

2 に答える 2

2

「値の変更」イベントでデータピッカーを接続し、

このコードを使用して、他のコードからコピーしたので、いくつかの変更を行う必要があります

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

ansは、datepickerをスクロールするときに「datePickerDateChanged」メソッドが呼び出されているかどうかも確認します。

于 2012-10-06T11:29:06.693 に答える
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];
}

これが他の誰かに役立つことを願っています。

于 2012-10-06T23:24:48.840 に答える