階層ナビゲーションモードと任意のビュースワップモードの両方があるiOSアプリケーション用のインターフェイスを設計しています。あるモードでの任意のビューのレイアウトは、他のモードでの対応するビューのレイアウトとは異なります。UINavigationControllerをシミュレートする方法/ pushToViewControllerメソッド
私は、ユーザーがこれらのモードを行き来できるようにしたいと考えています。分離されたサブビューには、UINavigationControllerの階層の2レベル下に対応する詳細ビューがあるとします。ユーザーは、ナビゲーション詳細ビューに直接切り替えることができます。そこから、UINavigationController階層を上下に移動したり、彼が来た独立したサブビューに戻ることができます。
UINavigationControllerは、あなたが戻ってアップ階層を移動、それはあなたが階層の下位レベルに直接ジャンプ聞かせ該当するpushToViewController:animated:
を持っていないとして、あなたはレベルをスキップできるようになる方法popToViewController:animated:
を持っています。これは理にかなっています。ナビゲーションコントローラは、ターゲットビューを表示する前に、介入するビューをスタックにプッシュする必要があります。しかし、通常のプッシュ方法の表示を介在するビューは、ビジュアル・フラッシュとパフォーマンス・ヒットを引き起こします。
私が介在ビューのためのanimated:NO
とし、透明に一時的に設定介在ビューで、2回連続pushViewController
を呼び出すことによってpushToViewController
をシミュレートした場合、私は妥当な性能を得るのだろうか?または、ナビゲーションモードが要求されたときに、ナビゲーションコントローラのスタックの後ろにの隔離されたビューを配置する必要がある場合は、複数の呼び出しをpushViewController,
にして、navコントローラを前面に移動しますか?それとも、UIViewのadd/remove/insert/exchangeSubview
を使って、UINavigationControllerを一切使わずに、すべてのテーブルビュースタイルのナビゲーションを手動で行う必要がありますか?
ありがとうございます、はい、まさに私が欲しいものです! 「ナビゲーションスタック上の項目へのアクセス」の下にリストされているので、 'animated:'パラメータによって提供される手がかりにもかかわらず、アクセスされたビューを表示する*表示することはできません。あなたの時間を取って申し訳ありません。 – Wienke
問題ありません:)喜んで助けてください – Aaron