Creating popover view controllers for Iphone in Interface Builder
ios, iphone, objective-c, uipopovercontroller, uistoryboard
Solution
Since You did not specified target device in your question, I gave you Ipad answer
IPAD:
Go to your storyboard drag and drop a `viewcontroller` or `tableviewcontroller` its up to you. Then create a segue from desired `viewcontroller` on your storyboard to newly dragged/dropped `viewcontroller`. Choose your segue as `popOver`.
Make sure you choose an anchor in segue settings like above picture. Then you need to edit size of your popover . If its a `uiviewcontroller` choose its view,if its a `tableviewcontroller` choose its tableview on left side of interface builder and edit its size.
First:
Second:
After that customize your popover view controller (dragged/dropped view controller) add button,label whatever you want.
If you are going to do additional things in your popover: Dont forget to create new file -> subclass of uiviewcontroller or uitableviewcontroller. Then associate it with your newly created viewcontroller on storyboard.
IPHONE:
There are no Popover controllers in iphone
But you try to use a third party https://github.com/50pixels/FPPopover solution that mimics popover behaviors in iphone by using `QuartzCore`
I would try following:
First:
Again drag and drop a `uiviewcontoller` to your storyboard, then create a new file-> subclass of `uiviewcontroller` .
This new `uiviewcontroller` will sit in the corner in your storyboard
Then associate your uiviewcontroller in your storyboard with new Created file , lets say you created a new file name with `YourViewController` . Give your view a storyboard id and choose its class name.
-(IBAction)buttonClicked:(UIButton*)okButton
{
//the view controller you want to present as popover
YourViewController *controller = [[YourViewController alloc] init];
//if [[YourViewController alloc] init]; doesn't work try this
// UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:nil];
//YourViewController *controller = [sb instantiateViewControllerWithIdentifier:@"YourViewController"];
//our popover
FPPopoverController *popover = [[FPPopoverController alloc] initWithViewController:controller];
//the popover will be presented from the okButton view
[popover presentPopoverFromView:okButton];
//no release (ARC enable)
//[controller release];
}
Note: I havent used that FPPopover before so dont know how to arrange screen size but there must be further explanation in their documents just read it.
Problem
How do I go about doing this? I know I have to give the popover a view controller that it constructs its view from, but I don't know how to construct this view in Interface Builder (like adding the labels and buttons and whatnot). Do I just do it in the normal storyboard and have a storyboard that's randomly not connected to anything else, sitting off in the corner? Do I create another storyboard? Do I create a xib even though my project is all storyboard? Do I create it programatically?