Anna Dickinson
Anna Dickinson

Reputation: 3347

ios: Get size of parent popover from child viewController?

I have a viewController which is presented inside a popover. I'm trying to figure out how to size the viewController's view (viewController's self.view) to match the popover.

I would think the view would automatically be size to fit into the popover; for some reason, it isn't. The view's frame is the size of the entire screen, for some reason.

How do I either: detect the size of the surrounding view controller so I can resize the view; or, cause the view to automatically size itself to the popover?

Note: This is a class which is embedded into someone else's app, so I have no control over the popover size itself.

Upvotes: 2

Views: 686

Answers (2)

Anna Dickinson
Anna Dickinson

Reputation: 3347

Figured out what I was doing wrong: I was looking at the frame size in the viewDidLoad method. It's not always valid at that point, for some reason.

The correct place to check the frame size is viewDidAppear; it seems to be valid there. Admittedly, though, I haven't checked this in every single corner case, so YMMV.

Upvotes: 2

Rad'Val
Rad'Val

Reputation: 9231

Override contentSizeForViewInPopover for your view controller and return the size you need the popover to have. So, it somehow works the other way around, the contained view controller lets the popover know how large should it be. The popover is 320px x 1100px by default I think. If you overwrite the method I mentioned above, you'll make it as large as you want it to be, even if the code is embedded in an app and you don't have control over it.

Upvotes: 0

Related Questions