Wie kann ich mit StoryBoard einen UIDatePicker in einem Popover auf dem iPad anzeigen?
Ich habe es geschafft, den Datepicker im Popover anzuzeigen, und zwar programmgesteuert, wie in gezeigtUIDatePicker in UIPopover.
Aber ich habe versucht, dies in Interface Builder zu tun. Ich habe bereits einen View Controller mit dem Namen DatePickerViewController.m mit einem DatePicker und dem zugehörigen IBoulet erstellt
#import <UIKit/UIKit.h>
@interface DatePickerViewController : UIViewController
@property (strong, nonatomic) IBOutlet UIDatePicker *birthdayDatePicker;
@end
Dann muss dies in einem Popover angezeigt werden, wenn das Textfeld Geburtstag bearbeitet wird. Also benutze ich den folgenden Code
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
//Assign DatePicker to Birthday TextField
//build our custom popover view
DatePickerViewController* popoverContent = [[DatePickerViewController alloc] init];
//resize the popover view shown
//in the current view to the view's size
popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 216);
// dismiss existing popover
if (self.popoverControllerBirthday)
{
[self.popoverControllerBirthday dismissPopoverAnimated:NO];
self.popoverControllerBirthday = nil;
}
//create a popover controller with my DatePickerViewController in it
UIPopoverController *popoverControllerForDate = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
//Set the delegate to self to receive the data of the Datepicker in the popover
popoverControllerForDate.delegate = self;
//Adjust the popover Frame to appear where I want
CGRect myFrame =textField.frame;
myFrame.origin.x = 260;
myFrame.origin.y = 320;
//Present the popover
[popoverControllerForDate presentPopoverFromRect:myFrame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionDown
animated:YES];
self.popoverControllerBirthday = popoverControllerForDate;
return NO; // tells the textfield not to start its own editing process (ie show the keyboard)
}
Außerdem importiere ich den benutzerdefinierten DatePickerViewController in meinen aktuellen ViewController
#import "DatePickerViewController.h"
Es wird jedoch nicht der Datumsmesser im Popover angezeigt.
Weiß jemand, was passieren könnte?