問題タブ [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 投票する
1 に答える
465 参照

ios - 移行中のデリゲートでは、現在のコントローラーは Nill です

現在、を使用してView Controllerを提示しようとしていUIPresentationControllerます。私の問題は、カスタム遷移デリゲートが呼び出されるときです

提示しているコントローラーがnil原因で、例外がスローされます。タブバーコントローラーに埋め込まれたナビゲーションコントローラーに埋め込まれたビューコントローラーから提示しています。これらのコントローラーからも同じ問題に提示しようとしました。カスタムモーダルプレゼンテーションがない場合にも適切に機能しますが、私の目標はそれをカスタマイズすることです。ボタンが選択されたときに呼び出します。コードは以下のとおりです。mapTransitionDelegateクラスプロパティに保持するカスタム遷移デリゲートです。また、EnlargedMapViewController()遷移するデリゲートが呼び出されるように、カスタム モーダル プレゼンテーションを持つように初期化されます。

将来の知識のために、この問題が発生している理由を知りたいです。UIPresentationController今のところ、この例外のため、私のサブクラスは初期化されていません。

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

ios - Swift - UITableView editActionsForRowAtIndexPath は、[編集] をクリックすると UIPresentationController を開きます

こんにちは、左スワイプがトリガーされてクリックされたときに UIPresentationController を開く方法はありますEditか?

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

ios - カスタム モーダル トランジションの非同期アニメーションの実行の非同期化

UIPresentationControllerサブクラスを使用して、プレゼンテーションと終了中に追加のビューを作成および操作するカスタム モーダル トランジションの実装に取り​​組んできました。Appleはドキュメントでこれを行う方法の例を提供していますが、私は問題にぶつかりました。

モーダルを表示すると、カスタム ビュー アニメーションは完全に機能しますが、モーダルを閉じると、dismissalTransitionWillBegin再生中のカスタム ビューに適用されるアニメーションが、元のトランジション アニメーター オブジェクトによって指定されたアニメーションと同期しなくなりますanimationControllerForDismissedController:。具体的には、カスタム ビューのアニメーションは遷移アニメーションの継続時間を無視しており、常に非常に速く再生されます (継続時間は約 0.2 秒のようです)。

animateAlongsideTransition:completion:基本アニメーションの継続時間を無視する原因は何ですか?

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

ios8 - UIPresentationController は、別のビュー コントローラーがその上に表示されるとサイズが変わります

UIPresentationController を使用してモーダル ビュー コントローラーを提示しています。次の方法を使用して、presentedViewのフレームをcontainViewの境界よりも小さく設定しています:

この時点まで、すべてがうまく機能します。

ここで、画面全体を占める現在表示されているモーダル ビュー コントローラーの上に、別のビュー コントローラーをモーダル (デフォルトではカスタム) で表示します。したがって、画面全体をカバーするデフォルトのモーダル ビュー コントローラーの下にカスタム モーダル ビュー コントローラーがあります。

問題は、画面全体をカバーしているトップビューコントローラーを閉じると、カスタムビューコントローラーも画面全体をカバーして表示されることです。カスタム ビュー コントローラーのサイズを同じ (containerView より小さい) に維持したい。これを達成する方法はありますか。

どんな助けでもいただければ幸いです

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

ios - カスタム プレゼンテーション コントローラの使用時に元のステータス バーの外観を維持する

custom を使用して、ナビゲーション コントローラーに含まれるコントローラーからナビゲーション コントローラーを提示しますUIPresentationController

私の問題は、元のステータス バーの外観を保持できないことです。ステータスバーの制御を新しく提示されたモーダルに任せたくありません。代わりに、ソースコントローラーに任せたいと思います。これどうやってするの?

私は遊んでmodalPresentationStyleいましたが、それで何も達成できませんでした。私の場合、唯一の妥当な値はUIModalPresentationCustomです。

preferredStatusBarStyleiOS 9 では、ナビゲーション コントローラーがナビゲーション バー スタイルから適切なものを選択するため、どこにも実装しません。

トランジション自体はハーフモーダルです。つまり、ソース コントローラの一部が画面に残ります。UIPresentationControllerこれが、サブクラスが実装する理由ですshouldRemovePresentersView

アップデート:

次のレーダー: ( https://openradar.appspot.com/22565293 ) は問題を説明しており、プライベート メソッドの助けを借りて、提示されたコントローラーがステータス バーの外観をキャプチャするのを防ぐことができます。

同じことを達成する公式の方法があるのだろうか。

0 投票する
0 に答える
199 参照

ios - 提示されたビューのフレームをアニメーション化する方法は?

UIPresentationControllerキーボードが表示されたときに、アニメーションを使用してカスタムの提示されたビューのフレームを調整する必要があります。

自動的に追加された制約により、アニメーションが機能していないようです。これらの制約を変更してアニメーションを作成しようとしましたが、失敗しました。

過去 8 時間、この問題を解決しようとしましたが、失敗しました。UIPresentationControllerまた、ドキュメントには有用な情報が見つかりませんでした。この問題を解決する方法を誰かにアドバイスしてもらえますか?

modalPresentationStyle .Popover に似た効果を再現しようとしています。フレームの高さと原点を小さくするだけで、キーボードがコンテンツをカバーしなくなります。

キーボードが表示されたときにフレームを適応させたい。

提示されたVCの例:

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

ios - UIPresentationController preferredContentSize update animated

So I have a very basic UIPresentationController that basically display contentView centered on screen, it's size is determined by view controller preferredContentSize. (Its very much similar to regular modal view controller presented as FormSheet).

What I'm trying to achieve, is to be able to update size of this view controllers' view dynamically, by just changing it's preferredContentSize.

When I set preferredContentSize, my subclass of UIPresentationController receive information about it in:

But how can I from here resize the view frame with animation ? If I just call:

Immediately gets called containerViewWillLayoutSubviews and frame is changed without animation.

Please help me find a way, to resize it with animation. It must be possible, since it resizes with animation for example when rotation happens.

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

ios - セルのコンテンツに合わせてポップオーバーに埋め込まれたテーブル ビューの幅を動的に調整する

私のランドスケープ、iPadアプリには、バーボタンアイテムからのポップオーバーとして表示されるテーブルビューコントローラーがあります。

ポップオーバーをテーブル ビューのサイズに合わせるには、テーブル ビュー コントローラーのコードで次のようにします。

これは、ポップオーバーの高さをテーブル ビューの高さに調整する場合にうまく機能します (行数と各行の高さを考慮して)。

ただし、セルの 1 つのラベルを長すぎる文字列に設定すると...、ポップオーバー (およびテーブル ビュー) がさらに水平方向に拡大するための十分なスペースが画面上にあるにもかかわらず、切り捨てられます ( )。

次のように、十分な幅をハードコーディングできます。

...しかし、より動的でエレガントなソリューションを好むでしょう (たとえば、すべてのセルのコンテンツに収まる最小幅)。

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

ios - iOS 9 でセグエによって作成されたポップオーバーを閉じる

これについては Stack Overflow で多くの質問と回答がありますが、それらは iOS 8 以前でのみ有効です。

iOS 9 は多くのことを廃止し、SO の回答は機能しなくなりました。

とはいえ、このようなセグエを実行してポップオーバーを提示しています

このセグエは、現在の viewController とポップオーバーで使用される viewController の間に作成されます。関連するボタンはありません。ポップオーバーはビューに固定されています。

問題は、prepareForSegue:identifier

でありUIViewController

が新しくUIPopoverPresentationControllerなり、このオブジェクトは却下 API を提供しなくなりました。

代わりに、使用することになっています

ポップオーバーを閉じることができますが、これは私には効果がありません。

私の状況は次のとおりです。テキスト フィールドのあるポップオーバーがあります。ユーザーがキーボードを非表示にした場合、ポップオーバーを閉じたい。

だから私はこれをしました:

その後

しかし、これはまったく効果がありません。

また、ポップオーバー viewController 内にアンワインド セグエを作成し、表示中のビュー コントローラからそれを呼び出そうとしましたが、アプリがクラッシュします。