IOSアプリの共有拡張機能を構築していますが、デフォルトのSLComposeServiceViewController
を使用できないため、(ストーリーボードで)基本的なUIViewController
を作成し、ナビゲーションコントローラーに埋め込みました。私はそれを提示したり、却下したりしますが、常にフルスクリーンです。ダイアログのように見せたいです。 ViewControllerでself.preferredContentSize
を使用し、InterfaceBuilderのナビゲーションコントローラーでUse Preferred Explicit Size
を使用しようとしましたが、機能しません。
これはストーリーボードを使用して簡単かつ直接行うことができますが、すぐにはわかりません。複数のViewControllerは必要ありません。
わかりました、私はこれを理解しようと長い時間を費やしました。何らかの理由で、アクション拡張機能のようにビューサイズを設定することはできません。常にフルスクリーンになります(iPadでも)。したがって、これを回避する方法は、複数のViewControllerを作成することです。フルスクリーンのViewControllerが存在することにユーザーが気付かないように、最初のView Controllerを非表示にします(もちろん、共有拡張機能では、最初の非表示のView Controllerは実際には完全に非表示になるため、ユーザーはそれが提示されたことさえ知りません) 。次に、非表示のViewControllerを使用して実際のViewControllerを提示します。このようにして、好きなように提示したり、サイズなどを設定したりできます。
私の場合、実際に非表示のビューコントローラーにUIEffectViewを持たせたので、背景に素敵なぼかしアニメーションを作成して、実際のビューコントローラーをその上に表示できます。
これが写真です: