0

現在DatePickerViewController、UIDatePicker を持つストーリーボードで作成したポップオーバーがあります。ポップオーバーを閉じて、日付を元のビューに送信できるようにしたいのですが、ViewControllerこれを行う方法がわかりません。UIDatePicker から日付を取得する方法は知っていますが、ポップオーバーが閉じられたときにそのデータを取得する方法がわかりません。

これを試してViewControllerいますが、NSLog出力が表示されません...

- (void) popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    NSDate *selectedDate = ((DatePickerViewController *) popoverController.contentViewController).datePicker.date;
    NSCalendar * calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:selectedDate];
    int selectedYear = [dateComponents year];
    int selectedMonth = [dateComponents month];
    int selectedDay = [dateComponents day];

    self.dateLabel.text = [NSString stringWithFormat:@"%d/%d/%d",selectedMonth,selectedDay,selectedYear];

    NSLog(@"hello world"); // never shows up
}
4

1 に答える 1

0

prepareForSegue で delegate=self を設定する必要がありました。

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"toDatePicker"]) {
    UIStoryboardPopoverSegue *popoverSegue;
    popoverSegue = (UIStoryboardPopoverSegue *)segue;

    UIPopoverController *popoverController;
    popoverController = popoverSegue.popoverController;
    popoverController.delegate=self;
}
}
于 2012-08-30T00:09:21.800 に答える