問題タブ [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.

0 投票する
3 に答える
3030 参照

ios - 薄暗いビューをタップして UIPresentationController を閉じる方法

UIPresentationControllerカスタムモーダルを表示するために を使用しています。プレゼンテーション コントローラには、UIView表示されているときにアニメーション化された調光ビューがあります。モーダル自体はUIViewController、プレゼンテーション コントローラーのコンテナーに追加されます。

問題

[self dismissViewControllerAnimated:NO completion:nil]埋め込まれた UIViewController からしか呼び出せません。しかし、私はから同じことをすることはできませんUIPresentationController. しかし、それが薄暗いビューです。

モーダルに非表示のビューを追加したりNSNotificationCenter、可能であれば使用したりしたくありません。

UIPresentationController薄暗いビューをタップしてを閉じるにはどうすればよいですか? それは理にかなっていますか?出来ますか?

0 投票する
3 に答える
4060 参照

ios - トランジションの使用中に UIWindow の rootViewController を置き換えると、リークしているように見える

環境
iOS 9.2
Xcode 7.2

ビュー階層からも削除しながら、UIWindow の rootViewControllerをアニメーションに置き換えようとしています。

次に、単純に AppDelegate で遷移を開始します

Instruments でこれをプロファイリングすると、rootViewController がまだメモリ内にあることに注意してください。

ここに画像の説明を入力

また、同じ問題が iOS 8.3 に存在し、まだ開いていることを示唆しているように見えるこのバグ レポートに遭遇しました。

の一部としてそれを示唆する参考文献を見つけることができませんでした

ソースView Controllerが保持されているか(おそらくUIPresentationControllerによるものです?)、またはこれがバグである場合。UIPresentationController が iOS 8 で最初に導入されたことに注意してください。

それが仕様によるものである場合、ソース ビュー コントローラーを解放するオプションはありますか?

UIPresentationController のサブクラスを使用する

違いはないようです。SDK で他に何かを見つけることができませんでした。

現在、私が見つけた唯一の方法は、移行を行う前に、ルートビューコントローラーの代わりに、現在画面に表示されているもののスナップショットを使用して UIViewController を使用することです。

コンソールに次の警告が表示されますが、機能します

元の質問または警告メッセージに関するアイデアは大歓迎です。

アップデート

リリースが欠落しているこの 1 つの保持に絞り込んだと思います。

ここに画像の説明を入力

それは、問題のある呼び出しの可能性です。

0 投票する
2 に答える
2121 参照

ios - UIPresentationController -- 提示された View Controller のフレームを提示後に更新できますか?

カスタム UIPresentationController サブクラスを使用して、UIViewController のプレゼンテーションを管理しています。- (CGRect)frameOfPresentedViewInContainerViewcontainerView の境界からはめ込まれたフレームを提供するためにオーバーライドしています。

ここで、presentedViewController に対するユーザー アクションの後、presentedViewController のフレームを変更したいと思います。私の質問は次のとおりです。これを行う「自然な」方法はありますか??

提示された後にpresentedViewControllerのフレームを調整するにはどうすればよいですか?

0 投票する
3 に答える
1986 参照

ios - swiftでサブビュー内のラベルを中央に配置する方法

uipresentationcontroller api ビューから提示されたものを使用して見積もりを提示しようとしていますが、機能していません。私は何を間違っていますか?また、提示されたビューのサイズを動的に変更してテキストに合わせるにはどうすればよいですか? ありがとう。

これは私のコードです:

ご覧のとおり、テキストがオフになっています }

0 投票する
1 に答える
1471 参照

ios - iPad の UIPopoverPresentationController

言語を選択するときに iOS 設定アプリが行うように、UIPopoverPresentationController で viewController を提示したいと考えています。デバイス画面の中央にviewControllerを表示します! ここに画像の説明を入力

しかし、私の結果はそうではありません!

ここに画像の説明を入力

これは私のコードです:

そしてデリゲート:

0 投票する
1 に答える
404 参照

ios - iOS のカスタム UIPresentationController

UIPresentationControlleriOS ネイティブ.OverCurrentContextまたはとしてプレゼンテーションをシミュレートするために をカスタマイズしてい.CurrentContextます。

何をオーバーライドしても、presentingViewController常にrootViewControllerUIWindow であることがわかります。プレゼンテーション スタイルの動作のようにsourceViewController(1 つの呼び出しpresentViewController:animated:completion:)にする方法を知っている人はいますか?.CurrentContext

また、奇妙な動作として、shouldPresentInFullscreenメソッドが true を返しても false を返しても違いはありません。

0 投票する
1 に答える
750 参照

ios - プレゼンテーションでの animateAlongsideTransition の使用に関する問題TransitionWillBegin

UIViewControllerTransitioningDelegateUIViewControllerAnimatedTransitioningおよびを使用して、モーダルに表示されるビュー コントローラーのカスタム トランジションを作成しようとしていますUIPresentationController

私の提示ビューコントローラーUIViewControllerTransitioningDelegateでは、次のメソッドを実装して持っています。

のサブクラスでUIPresentationController、提示されたビュー コントローラーの下に調光ビューを追加し、外観の遷移と共にフェードインしたいと考えています。

興味深い (そして非常に苛立たしい) ことは、提示されたビュー コントローラーの提示と終了のアニメーションが期待どおりに動作し、.NET で実装されていることMyAnimationControllerです。私の調光ビューのフェードイン/フェードアウトに関しては、提示されたView Controllerを閉じるときにのみ機能します。それを提示するとき、フェードインはトランジションと一緒にアニメーション化されず、単に一定の時間を使用します。Apple のドキュメントといくつかのチュートリアルに従ってすべてを実装したと確信していますが、何らかの理由で期待どおりに動作しません。ここで問題が何であるかについて何か提案はありますか?

0 投票する
5 に答える
3739 参照

ios - モーダルに表示されたビュー コントローラーを閉じるときのフレームが正しくない

UIViewControllerカスタム トランジションとカスタム を使用して紹介していますUIPresentationController。ビュー コントローラーのビューは画面全体をカバーしていないため、表示中のビュー コントローラーは引き続き表示されます。

次に、UIImagePickerControllerこのビュー コントローラーの上に のインスタンスを表示します。問題は、イメージ ピッカーを閉じると、表示するビュー コントローラーのフレームが、カバーしたい部分だけではなく、画面全体をカバーすることです。frameOfPresentedViewInContainerView私のカスタムで指定されたフレームはUIPresentationController完全に無視されているようです。

modalPresentationStyleフレームの画像ピッカーが存在する場合にのみ、UIModalPresentationOverCurrentContextそのまま残ります(そもそもビュー階層からビューが削除されないため、これは理にかなっています)。残念ながら、それは私が望むものではありません。画像ピッカーを全画面表示にしたいのですが、何らかの理由でレイアウトが台無しになっているようです。ここで間違っていることや忘れていることはありますか? 助言がありますか?