問題タブ [uimodalpresentationstyle]
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 - ViewController が DidDismissPopover 通知を受信しない
別のView Controller Aによってポップアップとして表示されるView Controller Bがあります。View Controller BはプロトコルUIPopoverPresentationControllerDelegate
(ヘッダーファイルで定義)に準拠し、このメソッドを実装しています。
ビュー コントローラー A で、ビュー コントローラー B を初期化し、その modalPresentationStyle を に設定しUIModalPresentationPopover
て、メソッドを使用して表示しpresentViewController:animated:completion:
ます。
ポップオーバーの横をクリックして閉じると、通知が届きません。ビュー コントローラ B がこの通知を受信しないのはなぜですか?
UIPopoverPresentationControllerDelegate
ビューコントローラーAを準拠させてそこにメソッドを実装すると、同じことが起こります。
Objective C と iOS 9 のターゲットを使用しています。
編集
以下のコメントのおかげで、私は間違いを見つけました。デリゲートを設定するのを忘れていました。ここで、View Controller A のデリゲートをそれ自体に設定し、A が必要なデータを View Controller B から取得できるようにします。
objective-c - 優先スタイル UIAlertControllerStyleActionSheet で UIAlertController のモーダル プレゼンテーション スタイルを変更することは可能ですか?
アラート コントローラーの popoverPresentationController を介して、このポップオーバーの位置情報を提供する必要があることはわかっています。sourceView と sourceRect または barButtonItem のいずれかを指定する必要がありますが、iPad の場合はアラート シートを中央に表示したいと考えています。
ios - iPhone でのフォームシート プレゼンテーションの高さのサイズ変更
UIAdaptivePresentationControllerDelegate を使用することで、フォーム シートのスタイルで表示されるビュー コントローラーを取得できました。
preferredContentSize を設定すると、VC の幅は変更できますが、高さは変更できません。なぜですか?
ios - 現在のコンテキストで ViewController を提示するとスタックする
ボタンを押すと(「タッチダウン」)、現在のコンテキストでビューコントローラーをモーダルに表示しようとしています。そのボタンを離すと(「タッチアップインサイド」)、ビューコントローラーを閉じます。
これは私のコードです:(buttonPressedは「タッチダウン」イベントで、buttonReleasedは「タッチアップインサイド」イベントです)
しかし、ボタンをスパムすると、別のビューが動かなくなり、そこに残されます。誰もこの問題の解決策を知っていますか? ありがとうございました。
編集:また、アニメーションを false に変更しても、これは引き続き発生するため、おそらく問題ではありません。
EDIT 2問題を解決しました。ボタンから間違ったイベントを聞いていました。ボタンをすばやく押して離すと、発生するイベントは「タッチ キャンセル」のようです。私もそれを追加し、私のコードは正常に機能するようになりました。
ios - textView iOS で選択した textRange の四角形にポップオーバーを固定する
UIMenuItem
アンカーポイントが で選択されたテキストの四角形であるからポップオーバーを表示しようとしていtextView
ます。次のコードがあります。
行でアプリがクラッシュしますcolorVC.modalPresentationStyle = .popover
。誰かがここで何が起こっているのか教えてもらえますか? ありがとう!:)
ios - 「ココアタッチフレームワーク」コンポーネントのポップオーバーを実装する方法は?
質問: 「ココア タッチ フレームワーク」内でモーダル ポップオーバーをどのように実装しますか (IOS のベスト プラクティスによると思います)。
ここではユニバーサル アプリなので、iPhone と iPad の両方をサポートすると仮定します。ココア タッチ フレームワークを使用するメイン アプリにストーリーボードが使用されていると想定できます。
たとえば、コンポーネントが「ユーザーに X、Y、Z の情報をメイン アプリとそのビュー コントローラーに尋ねてから、次のようなアプローチを使用してください」を返す必要があるのがベスト プラクティスです。
これは難しく、使用するコンポーネント (/フレームワーク) に合わせてアプリを少しビルドする必要があるため、これは不可能に思えますか? 別の方法として、コンポーネント内でポップアップ ビューを自分で手動で作成することもできますが、通常のポップオーバー アプローチで iPad と iPhone をサポートするのに役立つ IOS ベスト プラクティス アプローチの恩恵を受けるかどうかはわかりませんか?
例として、ユーザーがドロップインできるようにしたいカスタムマップコンポーネントがあるとしますが、コンポーネントの1つの側面は、ユーザーがピンを選択/ドロップしたときに、モーダルダイアログをスローできるようにすることです。このドロップされたピンの名前をカスタマイズするようユーザーに依頼します。
(これが理にかなっていることを願っています)
ios - UIModalPresentationStyle.custom での definePresentationContext の使用
ビュー コントローラー コンテインメントを使用して、カスタムの方法で他のビュー コントローラーをモーダルに表示できる子ビュー コントローラーのセットを管理しています。
を使用してView Controllerから表示するときにdefinesPresentationContext
プロパティが使用されないという問題に遭遇しましたUIModalPresentationStyle.custom
ROOT
例として、 、A
、およびの3 つのビュー コントローラーがあります。B
A
の子ですROOT
。カスタム、、およびを使用してB
からモーダルに表示したいと思います。A
UIPresentationController
UIViewControllerTransitioningDelegate
UIViewControllerAnimatedTransitioning
したがって、コントローラーのコード内で次のことを行います(コントローラーが に設定されていることにA
注意してください)。A
definesPresentationContext
true
ただし、私のプレゼンテーション コントローラー (これも私のUIViewControllerAnimatedTransitioning
) 内で、次の問題が発生します。
この関数ではfromVC
、タイプが であると予想されますがA
、実際にはROOT
です。A
を指定しているにもかかわらず、definesPresentationContext
.
を使っているからだと思いUIModalPresentationStyle.custom
ます。だから私はそれをUIModalPresentationStyle.overCurrentContext
definesPresentationContext
これにより、iOS は からプロパティを正しく読み取るようA
になり、animateTransition
ビュー コントローラーから正しい関数が呼び出されるようになりましたが、次のようになります。
モーダル プレゼンテーション スタイルが ではなくなったため.custom
、遷移中のデリゲートの次のメソッドが呼び出されなくなりました
したがって、私のプレゼンテーションコントローラーは使用されなくなります。
.custom
を尊重するモーダル遷移スタイルが必要ですdefinesPresentationContext
。これは可能ですか?何か不足していますか?
基本的に、現在のコンテキスト内でカスタム モーダル プレゼンテーションが必要です。