カスタムナビゲーションとコンテナビュー
-
20-12-2019 - |
質問
私が欲しいもの
完全にカスタムナビゲーションバーで、カスタムモーダルトランジションを介してユーザーの操作を許可します。
私がやったこと
下部のコンテナビューと、上部のビュー(カスタムナビゲーションバー)を含む親ビューコントローラを構築しました。コンテナビューは、他のビューコントローラをモジュール的に提示できるビューコントローラを埋め込む。
表示されているビューコントローラは、カスタム遷移(UIViewControllerTransitingDelegate)を使用して下からポップアップし、ビューコントローラの一部を下のビューコントローラの一部を表示します(すなわち、メニューを表示されます)。
最初のビューコントローラがモーダルに表示されている場合は、カスタムナビゲーションメニューと対話することができます。ただし、最初のモーダル表示されたView Controllerが順番に別のView Controllerを表示している場合、カスタムナビゲーションバーはユーザーの操作に応答しません。
| NAV BAR |
|-----------| |------------| |------------|
| Container | | View | | View |
| view |-> EMBED -> | Controller |-> Presents -> | Controller |-> Presents ->
| | | | Modally | 1st | Modally
.
(cont)
|------------|
| View |
->| Controller |
| 2nd |
.
最初のビューコントローラがモーダルに表示されている場合、ナビゲーションバーはまだタッチに応答します。 2番目のもの(そしてその行(すなわち3番目、4th ...))が提示されているとき、ナビゲーションバーはまだ見えているが、ユーザのタッチに応答しない。
github には、プロジェクトがあります。
私の問題は何ですか
モーダルに提示したビューコントローラ数に関係なく、ナビゲーションバーをタップできるようにしたいのですが。
私がこの作品に近づいている方法はすべきですか?
私がしたいことを達成するための最良の方法は何ですか?完全にカスタムナビゲーションバー(すなわち、いくつかのボタン、カスタムの高さなど)を作成するための標準的な方法がありますか?
解決
github プロジェクトに従って、ファイルCVTFIRSTViewController.hの2番目のビューコントローラのモーダルプレゼンテーションスタイルを変更してください。
このコードを使う
secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
.
の代わりにp>
secondViewController.modalPresentationStyle = UIModalPresentationCustom;
.