Jacob Wood
Jacob Wood

Reputation: 467

datePicker in UIPopover after tapping on UITextField iPad

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

Answers (1)

jhilgert00
jhilgert00

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

Related Questions