Reputation: 8914
Is it impossible to present a popover controller from a view controller that's presented as UIModalPresentationFormsheet
? or am I missing something?
This code works fine on a non-modal view controller, and displays the popover correctly.(WEPopoverController is a custom implementation from here.)
GenericDataTableViewController *genericDataController = [[GenericDataTableViewController alloc] initWithNibName:@"GenericDataTableViewController" bundle:[NSBundle mainBundle]];
genericDataController.dataSource = [NSMutableArray arrayWithObjects:@"asli", nil];
genericDataController.delegate = self;
genericDataController.contentSizeForViewInPopover = CGSizeMake(300, 46 * [genericDataController.dataSource count]);
self.popoverController = [[[WEPopoverController alloc] initWithContentViewController:genericDataController] autorelease];
self.popoverController.delegate = self;
[self.popoverController presentPopoverFromRect:((UIButton *)sender).frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
[genericDataController release];
But when I put this inside the modal view controller, this presents the popover below the modal controller, i.e. on the view controller that presents the modal one. So it cannot be seen by the user.
How can I solve this?
Upvotes: 3
Views: 1675
Reputation: 8914
The answer is explained in the comments of the question but I'm summarizing it here for a cleaner Q&A.
There aren't any restrictions about displaying a popover controller from inside a form sheet, if your popover controller is UIPopoverController
. My problem was due to the implementation of WEPopoverController
.
So, sacrifice the visual experience and continue with the good old UIPopoverController
.
Upvotes: 3