問題タブ [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 - 薄暗いビューをタップして UIPresentationController を閉じる方法
UIPresentationController
カスタムモーダルを表示するために を使用しています。プレゼンテーション コントローラには、UIView
表示されているときにアニメーション化された調光ビューがあります。モーダル自体はUIViewController
、プレゼンテーション コントローラーのコンテナーに追加されます。
問題
[self dismissViewControllerAnimated:NO completion:nil]
埋め込まれた UIViewController からしか呼び出せません。しかし、私はから同じことをすることはできませんUIPresentationController
. しかし、それが薄暗いビューです。
モーダルに非表示のビューを追加したりNSNotificationCenter
、可能であれば使用したりしたくありません。
UIPresentationController
薄暗いビューをタップしてを閉じるにはどうすればよいですか? それは理にかなっていますか?出来ますか?
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 つの保持に絞り込んだと思います。
それは、問題のある呼び出しの可能性です。
ios - UIPresentationController -- 提示された View Controller のフレームを提示後に更新できますか?
カスタム UIPresentationController サブクラスを使用して、UIViewController のプレゼンテーションを管理しています。- (CGRect)frameOfPresentedViewInContainerView
containerView の境界からはめ込まれたフレームを提供するためにオーバーライドしています。
ここで、presentedViewController に対するユーザー アクションの後、presentedViewController のフレームを変更したいと思います。私の質問は次のとおりです。これを行う「自然な」方法はありますか??
提示された後にpresentedViewControllerのフレームを調整するにはどうすればよいですか?
ios - iOS のカスタム UIPresentationController
UIPresentationController
iOS ネイティブ.OverCurrentContext
またはとしてプレゼンテーションをシミュレートするために をカスタマイズしてい.CurrentContext
ます。
何をオーバーライドしても、presentingViewController
常にrootViewController
UIWindow であることがわかります。プレゼンテーション スタイルの動作のようにsourceViewController
(1 つの呼び出しpresentViewController:animated:completion
:)にする方法を知っている人はいますか?.CurrentContext
また、奇妙な動作として、shouldPresentInFullscreen
メソッドが true を返しても false を返しても違いはありません。
ios - プレゼンテーションでの animateAlongsideTransition の使用に関する問題TransitionWillBegin
UIViewControllerTransitioningDelegate
、UIViewControllerAnimatedTransitioning
およびを使用して、モーダルに表示されるビュー コントローラーのカスタム トランジションを作成しようとしていますUIPresentationController
。
私の提示ビューコントローラーUIViewControllerTransitioningDelegate
では、次のメソッドを実装して持っています。
のサブクラスでUIPresentationController
、提示されたビュー コントローラーの下に調光ビューを追加し、外観の遷移と共にフェードインしたいと考えています。
興味深い (そして非常に苛立たしい) ことは、提示されたビュー コントローラーの提示と終了のアニメーションが期待どおりに動作し、.NET で実装されていることMyAnimationController
です。私の調光ビューのフェードイン/フェードアウトに関しては、提示されたView Controllerを閉じるときにのみ機能します。それを提示するとき、フェードインはトランジションと一緒にアニメーション化されず、単に一定の時間を使用します。Apple のドキュメントといくつかのチュートリアルに従ってすべてを実装したと確信していますが、何らかの理由で期待どおりに動作しません。ここで問題が何であるかについて何か提案はありますか?
ios - モーダルに表示されたビュー コントローラーを閉じるときのフレームが正しくない
UIViewController
カスタム トランジションとカスタム を使用して紹介していますUIPresentationController
。ビュー コントローラーのビューは画面全体をカバーしていないため、表示中のビュー コントローラーは引き続き表示されます。
次に、UIImagePickerController
このビュー コントローラーの上に のインスタンスを表示します。問題は、イメージ ピッカーを閉じると、表示するビュー コントローラーのフレームが、カバーしたい部分だけではなく、画面全体をカバーすることです。frameOfPresentedViewInContainerView
私のカスタムで指定されたフレームはUIPresentationController
完全に無視されているようです。
modalPresentationStyle
フレームの画像ピッカーが存在する場合にのみ、UIModalPresentationOverCurrentContext
そのまま残ります(そもそもビュー階層からビューが削除されないため、これは理にかなっています)。残念ながら、それは私が望むものではありません。画像ピッカーを全画面表示にしたいのですが、何らかの理由でレイアウトが台無しになっているようです。ここで間違っていることや忘れていることはありますか? 助言がありますか?