fabb fabb - 4 years ago 131
iOS Question

Present UIActivityViewController in a way that Adapts Correctly to Size Class Changes

The documentation of

says the following:

On iPad, you must present the view controller in a popover. On iPhone and iPod touch, you must present it modally.

This does not make too much sense since we have Size Classes, and modally presented viewcontrollers adapt their appearance automatically to it (e.g. when we present something as a popover, it will by default be presented as a popover in Size Class
, and fullscreen in Size Class

Presenting the
in a popover for current Size Class
(which should automatically show fullscreen) does not work, the system complains. Presenting it as a popover for current Size Class
, and then changing the Size Class via Split Mode / Multitasking results in an empty nav bar and I cannot dismiss the viewcontroller. I should notice that I embedded the
in a navigation controller.

UIActivityViewController in Split Mode

Any suggestions how to make this responsive?

Answer Source

You must not embed the UIActivityViewController in a UINavigationController. I know it doesn't say so in the docs, but that's the only way I got it to work. And then you can actually present it the same way as you would do with any other popover/modal view. And it adapts correctly when you active Split Mode while it is being presented.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download