問題タブ [presentviewcontroller]

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 に答える
328 参照

ios - ボトムバー項目が presentViewController に表示されない

私のアプリでは、一連の画像を動的に読み込みます。ユーザーが画像をタップすると、画像の大きなプレビューを開く新しい ViewController (MediaPreview) が開きます。

次のように MediaPreview コントローラーを作成します。

これにより、次のような ViewController が作成されます。

ここに画像の説明を入力

ただし、ストーリーボードで概説されている下部のナビゲーション バーが表示されないようです。

ここに画像の説明を入力

下部のナビゲーション バー ボタンがビューに表示されるようにするにはどうすればよいですか?

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

ios - ModalViewController を閉じた後に親 ViewController を更新する

私の iOS アプリでは、ユーザーはリストから画像を選択できます。そのリストには、画像と画像を削除するオプションを含むモーダルが表示されます。ユーザーが画像の削除を選択すると、画像のリストを含む元の viewController に戻ります。次に、削除されたイメージを考慮して、元の ViewController を更新する必要があります。

NSNotificationCenter を使用して、画像が削除されたときに親 View Controller にブロードキャストしようとしました。ただし、ブロードキャストは受信されないようです。

他の方法はありますか

  1. モーダルが閉じられた後、データを親 ViewController に送り返します。
  2. モーダルが親 ViewController から閉じられたことを検出しますか?

(ここで概説されている例に従ってみましたが、うまくいかなかったようです)

以下は私のコードです:

EditStepViewController (元のビュー コントローラー):

MediaPreviewViewController (2 番目の ViewController):

次に、EditStepViewController に戻ります。

よろしくお願いします。

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

ios - ビュー コントローラーからのナビゲーション コントローラー

アプリで .xib ファイルを使用しています。そして、2つのView Controllerを通常の方法で使用し、3番目のView ControllerからナビゲーションView Controllerに埋め込みたいと思います。これが私が望む方法の図です。

ここに画像の説明を入力

このように、モーダルに表示されるビュー コントローラーにナビゲーション コントローラーを埋め込むことができることはわかっています。

しかし、ナビゲーション コントローラーに埋め込んでプッシュすると、同じビュー コントローラー インスタンスを複数回プッシュすることはサポートされていませんというエラーでアプリがクラッシュします。

これを行うことはまったく可能ですか?もしそうなら、誰かがその方法を説明してもらえますか?

ありがとうございました。

注:コード スニペットと上の図を混同しないでください。firstViewControllerコード内の は、図の最初のビュー コントローラーではありません

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

ios - オーバーレイ ボタンが押されたときに imagePickerViewController が閉じられない

UIViewController クラスと xib ファイルを使用して、photoLibrary にアクセスするためのボタンを備えたカスタム カメラ overlayView を実装しました。オーバーレイは正常に読み込まれ、ボタンは正常に機能します。ただし、photoLibrary が開いているときは、カメラはバックグラウンドで開いたままです。photoLibrary ビューがカメラ ビューをカバーしているように見えます。「撮影」ボタンがあるはずだった場所をクリックして写真を撮ることもできます...ここで何が問題なのか誰か知っていますか?

前もって感謝します!

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

ios8 - iOS8 での遅延を伴う AppDelegate の presentViewController

したがって、AppDelegateのdidFinishLaunchingでpresentViewControllerを介してLoginViewControllerを表示するiOS7で完全に機能するソリューションがありました。

基本的に私はこのようなことをしています:

iOS8 ではジャンプが見られます。最初に backgroundViewController が表示され、約 1 秒後にログインが表示されます。

では、どうすればiOS8でこのジャンプを防ぐことができますか?

この種の問題を抱えているにもかかわらず、解決策を見つけられなかった多く開発者がいます。

0 投票する
4 に答える
116 参照

objective-c - ビュー コントローラー間を移動する

私はあなたが私を助けることができるかどうか疑問に思っていました. 私は 5 つの UIView コントローラーを持つアプリを開発しています。それぞれに入力するフィールドがあります。ページの下部に、各コントローラーに 1 つずつ、5 つのボタンを持つ下部バーを作成しました。

私が欲しいのは次のとおりです。ユーザーが VC_1 の半分を入力してから VC_2 に移動し、ここでいくつかのフィールドに入力してから、VC_1 または新しい VC3 に戻り、前の進行状況がまだ残っている場合。

ボタンを押すたびに「presentViewController」を使用してこれを試しましたが、1に戻ると、おそらく現在のviewControllerの上にviewControllerがスローされるため、すべてのフィールドが空になります。データが削除されない 1 つの方法は、dismissViewController を使用する場合ですが、これは常に VC_1 に戻り、VC_3 から VC2 に戻りたい場合は機能しません。

私の質問が理にかなっており、上記の目的をどのように達成できるかを説明していただければ幸いです。

乾杯、 レナート

0 投票する
4 に答える
2067 参照

ios - iOS 8 – キー ウィンドウを設定した後、または閉じてすぐに別のウィンドウを表示した後、すぐにビュー コントローラーを表示するとグリッチが発生する

私のアプリを iOS 8 でテストして以来、View Controller の初期化とプレゼンテーションの回避策が非常に遅いことがわかりました。

iOS 6 & 7 では、次のようなコードを使用していました。

これは、iOS 8 では非常に遅い地獄になりました。ルート ビュー コントローラーが 0.5 ~ 1 秒間表示され、表示された画面で即座に再描画されます。さらに、プレゼンテーションの遅さがUnbalanced calls to begin/end appearance transitions _rootViewController警告を引き起こし始めました。

最初の簡単なヒントは、別の関数の呼び出しで両方の条件を移動し、ゼロ遅延で呼び出すことでした。これにより、次のメイン実行ループで処理されます。

またはそのようなもの。これにより、不均衡な呼び出しの問題が修正されますが、視覚的なギャップ (rootviewcontroller、ギャップ、提示されたもの) は (明らかに) さらに大きくなります。

次のように通常のものを呼び出すと、プレゼンテーションの遅さも明らかです。

これは、iOS 7 で親 View Controller の目に見えるフリックなしで直接遷移を実行していた、完全に公正なコードである必要があります。同じことです – 遷移中の親フリックは、両方ともアニメーションなしで処理されます。

誰かがこれを問題として直面していますか?解決策はありますか?UIWindow完璧にトランジットする必要があるものごとに s を使用して陽気な魔法を行う必要なく、これを解決したいと思います。

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

ios - アプリがフォアグラウンドに戻ったときにアプリのスナップショットを制御する

ViewControllerアプリがフォアグラウンドになるたびにポップアップが表示され、アクセスパスワードが必要な特定のものを実装します。

アプリはすでに成熟しており、少し複雑なので、このパスワード画面を別の VC の上に表示される別の ViewController として処理し、applicationDidBecomeActive などのメソッドによって AppDelegate から呼び出されます。

このアプローチの問題は次のように思われます: アプリがフォアグラウンドになったとき、パスワード ViewController はまだ画面に描画されておらず、短い間、実際のアプリ画面がクリアに表示されます。

でパスワード ViewController の提示applicationDidEnterBackgroundを事前にトリガーしても、アプリがフォアグラウンドに戻ったときに実際の画面の再描画が常に行われるため、アプリの画面が不必要に表示されます。

このパスワード画面で基になるViewControllerを遅滞なく非表示にする最も適切な方法を誰かが提案してもらえますか?

アルファ設定が 0.0 から 1.0 に切り替わるメソッドも、表示に時間がかかるようで、今までは機能しませんでした。

ありがとうございました!

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

ios - スタックの下位にある ViewController を破棄すると、期待どおりに動作しない

途中に一種の分岐がある複雑なアプリを構築しています。

アプリのある時点で、特定の UIViewController が表示されます。これをmainViewController(略してmainVC) と呼びます。

mainVC、次のコードを使用して別のビュー コントローラーをコードで示します (プライバシー上の理由から、一部を省略しています)。

そのため、secondVCは後で と呼ばれる別のビュー コントローラを提示しますthirdVC。これは、上記のコードで使用されているストーリーボードに設定されたカスタム セグエを使用して行われます。このコードは次のようになります。

ご覧のとおり、このセグエはpresentViewController:、カスタム アニメーション (右から左へのスライド) を使用して ( を使用して) 目的のビュー コントローラーをモーダルに表示します。

基本的にここまでは問題ありません。をsecondVC従来のモーダル アニメーション (下から上にスライド) で表示thirdVCし、カスタム トランジションで を表示します。

しかし、 を閉じたいときはthirdVC、直接 に戻りたいのですmainVC。だから私はから以下を呼び出しますthirdVC:

そのようにして、私は( で参照されている) をdismissViewControllerAnimated:直接呼び出しており、 がアニメーションで閉じられ、 がアニメーションなしで消えてしまうことを期待しています。mainVCself.presentingViewController.presentingViewControllerthirdVCsecondVC

Apple が UIViewController クラスのドキュメントで述べているように:

表示側のビュー コントローラーは、表示されたビュー コントローラーを閉じる責任があります。提示されたView Controller自体でこのメソッドを呼び出すと、メッセージが提示元のView Controllerに自動的に転送されます。

複数のビュー コントローラーを連続して提示し、提示されたビュー コントローラーのスタックを構築する場合、スタックの下位にあるビュー コントローラーでこのメソッドを呼び出すと、スタックの直接の子ビュー コントローラーとその子の上のすべてのビュー コントローラーが破棄されます。これが発生すると、最上位のビューのみがアニメーション形式で閉じられます。中間のView Controllerはスタックから単純に削除されます。最上位のビューは、そのモーダル遷移スタイルを使用して閉じられます。これは、スタック内の下位にある他のビュー コントローラーで使用されるスタイルとは異なる場合があります。

問題は、それが起こることではないということです。私のシナリオでは、 がthirdVC消え、secondVC従来のモーダル スライドから下へのアニメーションで却下されていることが示されます。

私は何を間違っていますか?


編集 :

だから@codeFiの答えはおそらく古典的なプロジェクトで働いていますが、ここでの問題は私がフレームワークに取り組んでいることです. これmainVCはクライアント アプリにあり、secondVCthirdVCは私のフレームワークの別のストーリーボードにあります。mainVCコード内で参照する以外の方法でアクセスできないため、残念ながらセグエのアンワインドはここではオプションではありません。