问题描述
我正在为我的iOS应用构建共享扩展,我无法使用默认的 SLComposeServiceViewController
,因此我创建了(在故事板中)基本的 UIViewController
并嵌入在导航控制器中。我得出现它,解雇它等但它总是全屏。我想让它看起来更像是一个对话框。
我试过在我的视图控制器上使用 self.preferredContentSize
,在导航上尝试使用首选显式大小
Interface Builder中的控制器,但它不起作用。
I'm building a share extension for my iOS app and I can't use the default SLComposeServiceViewController
, so I created (in the storyboard) a basic UIViewController
and embedded in a navigation controller. I get to present it, dismiss it etc but it's always full screen. I would like to make it look more like a dialog.I have tried using self.preferredContentSize
on my view controller, tried Use Preferred Explicit Size
on the navigation controller in Interface Builder, but it doesn't work.
推荐答案
这可以使用故事板轻松直接完成,但不是很明显。不需要多个视图控制器。
This can be done easily and directly using the storyboard but is not immediately obvious. There is no need for multiple view controllers.
- 创建自己的视图控制器类继承自UIViewController。
- 在MainInterface.storyboard中将视图控制器的类更改为新类
- 在故事板中,您可以简单地绘制UI - 但这是技巧。您需要了解故事板视图将填满屏幕,默认情况下,视图已创建为具有清晰的背景。您只需在主视图中创建一个视图。您可以设置自动布局约束以调整此视图的大小并定位它(例如,水平和垂直居中)。您还可以使用大小类使此内部视图填充紧凑布局上的屏幕。通过控制拖动以通常的方式将控件从内部视图连接到视图控制器
- 在自定义视图控制器中,您可以引用self.extensionContext来读取和完成共享操作。请参阅模板ShareViewExtension
这篇关于iOS 8共享扩展自定义视图控制器大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!