2012-08-29 24 views
0

我目前有一個彈出框DatePickerViewController,我在故事板中創建了一個UIDatePicker。我想能夠解僱popover並將日期發送到我的原始視圖ViewController,但我不知道如何執行此操作。我知道如何從UIDatePicker獲取日期,但我不知道如何在popover解除時獲取這些數據。如何確定在解除彈出窗口後從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 
} 
+0

我已經'ViewController'設爲'UIPopoverControllerDelegate' – lemontwist

回答

0

我必須設置委託=自我在prepareForSegue:

- (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; 
} 
} 
相關問題