uipopover で uidatepicker をポップアップし、それをポップした VC にデータを送り返すことができます。私は基本的に、uidatepicker をポップアップする 2 つの VC (StartdateVC と endDateVC) を持っています。最後の日付を保存し、再起動時に uidatepicker を開始する必要があります。だから私のコードはpopoverのviewDidLoadにあります、
if (myLastDate == nil) {
[self.mydatePicker setDate:[NSDate date] animated:NO];
} else {
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateStyle : NSDateFormatterLongStyle];
[self.mydatePicker setDate:[formatter dateFromString:myLastDate] animated:NO];
[super viewDidLoad];
}
myLastDate を NSUserDefaults に保存し、ここで取得しました。どの VC がポップアップを起動したかを区別できるようにして、対応する最後の日付で uidatepicker を起動できるようにしたいと考えています。どんなアイデアやヒントも大歓迎です。:)
編集: 各 VC には、次の方法があります。
- (IBAction)calendarbutton:(UIButton *)sender {
UIView *anchor = sender;
selectDatePopover *selectDatePopoverinstance =
[self.storyboard instantiateViewControllerWithIdentifier:@"selectDatePopover"];
// selectDatePopover.delegate = self;
_popover = [[UIPopoverController alloc] initWithContentViewController:selectDatePopoverinstance];
[_popover presentPopoverFromRect:anchor.frame inView:anchor.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
selectDatePopoverinstance.delegate = self;
_popover.delegate =self;
}