Reputation: 467
I would like to create UIPopover
on iPad with a UIDatePicker
within it, after tapping on UITextField
.
I used the code below to do so but I don't know what tempButton.frame
represents or what tempButton
is.
Is it possible to do the same using storyboard? Thanks in Advance.
UIViewController* popoverContent = [[UIViewController alloc] init]; //ViewController
UIView *popoverView = [[UIView alloc] init]; //view
popoverView.backgroundColor = [UIColor blackColor];
UIDatePicker *datePicker=[[UIDatePicker alloc]init];//Date picker
datePicker.frame=CGRectMake(0,44,320, 216);
datePicker.datePickerMode = UIDatePickerModeDateAndTime;
[datePicker setMinuteInterval:5];
[datePicker setTag:10];
[datePicker addTarget:self action:@selector(Result) forControlEvents:UIControlEventValueChanged];
[popoverView addSubview:datePicker];
popoverContent.view = popoverView;
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
popoverController.delegate=self;
[popoverContent release];
[popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
[popoverController presentPopoverFromRect:tempButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];//tempButton.frame where you need you can put that frame
Upvotes: 2
Views: 3217
Reputation: 5489
As for the button itself, you can use the rightView property of UITextField.
And using a stroryboard for the datepicker view can be done as well.
1) Drag a ViewController to the storyboard.
2) Set it's class to your custom class in the Identity Inspector.
3) Set a value for "StoryBoard ID" in the Identity Inspector.
4) Setup the view with your datePicker.
5) #import "PopoverContentViewController.h" to your presenting ViewController.
When you present your popover:
PopoverContentViewController *popoverContent = [self.storyboard instantiateViewControllerWithIdentifier:@"myStoryboardID"];
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
popoverController.delegate=self;
[popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];
[popoverController presentPopoverFromRect:myTextField.myRightView.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
You'll probably want to setup a delegate so the UIDatePicker
can communicate back to the presenting ViewController
.
Upvotes: 1