問題タブ [uipresentationcontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - presentingViewController の背後
以下のように、を使用してモーダル ビュー プレゼンテーションのカスタム トランジションを実行しようとしていUIPresentationControllerます。
次のようにプレゼンテーション ビューをスケーリングしました (内部func presentingTransitionWillBegin()):
ただし、の背景presentingViewは常に黒で、色を変更する適切な場所が見つかりません。
に白色のビューをcontainerView追加してからself.presentingViewController.view、そのサブビューとして追加しようとしました:
まあ、それは何とか働いた。しかし、明らかに、モーダル ビューを閉じるとクラッシュします。self.presentingViewController.viewそして、トランジションを閉じるときにこれを元に戻す場所が見つかりません!
最終的には、以下のようなものを達成したいと考えています。
swift - ポップオーバーとして表示される UIViewController を独自の popoverPresentationController デリゲートにすることはできますか?
以下に示すプロジェクトには、InitialViewController「Show Popover」というラベルのボタンが 1 つある があります。そのボタンがタップされると、アプリは 2 番目のビュー コントローラー ( PopoverViewController) をポップオーバーとして表示することになっています。2 番目のビュー コントローラーには、"Popover!" というラベルが付いています。
これは、InitialViewControllerが のインスタンス化PopoverViewController、取得、popoverPresentationControllerおよび popoverPresentationController のdelegateそれ自体 (へInitialViewController) の設定を処理する場合に正常に機能します。以下に結果を示します。
InitialViewControllerただし、再利用性を最大限に高めるには、プレゼンテーション コントローラがどのように委任されるかについて何も知る必要がなければ、すばらしいことです。PopoverViewControllerが popoverPresentationController として設定できるはずだと思いますdelegate。viewDidLoadまたは のviewWillAppear関数でこれを試しましたPopoverViewController。ただし、PopoverViewController以下に示すように、どちらの場合もモーダルで表示されます。
すべてのコードは と だけに含まれてInitialViewControllerいPopoverViewControllerます。の失敗したバージョンで使用されるコードをInitialViewController以下に示します。
失敗し たコードをPopoverViewController以下に示します。
ポップオーバーとして表示されているビュー コントローラーを独自のデリゲートにすることは可能popoverPresentationControllerですか?
Xcode 8.0、Swift 3.1 を使用しており、ターゲットは iOS 10.0 です




