0

私が欲しいもの

カスタム モーダル トランジションによるユーザー インタラクションを保持し、許可する、完全にカスタムのナビゲーション バー。

私がしたこと

下部にコンテナー ビュー、上部にビュー (カスタム ナビゲーション バー) を含む親ビュー コントローラーを作成しました。Container View には、他の View Controller をモーダルに表示できる View Controller が組み込まれています。

モーダルに表示されるビュー コントローラーは、カスタム トランジション (UIViewControllerTransitioningDelegate) を使用して下部からポップアップし、下部のビュー コントローラーの一部のみを占有します (つまり、メニューを表示したままにします)。

最初のビュー コントローラーがモーダルに表示されている場合でも、カスタム ナビゲーション メニューを操作できます。ただし、モーダルに表示された最初のビュー コントローラーが別のビュー コントローラーを表示すると、カスタム ナビゲーション バーはユーザーの操作に応答しません。

|  NAV BAR  |             
|-----------|             |------------|               |------------|              
| Container |             |   View     |               |    View    |             
|   view    |-> EMBED ->  | Controller |-> Presents -> | Controller |-> Presents ->
|           |             |            |    Modally    |    1st     |    Modally   

(続き)

  |------------|
  |    View    |
->| Controller |
  |     2nd    |

最初のビュー コントローラーがモーダルで表示されている場合でも、ナビゲーション バーはタッチに反応します。2 番目のもの (およびその行の他のもの (つまり、3 番目、4 番目など)) が表示されると、ナビゲーション バーは引き続き表示されますが、ユーザーのタッチには反応しません。

私が抱えている問題を説明するサンプル プロジェクトがGithubにあります。

私の問題は何ですか

モーダルに表示したビュー コントローラーの数に関係なく、ナビゲーション バーをタップできるようにしたいと考えています。

私がこの仕事にアプローチしている方法はありますか?

私がやりたいことを達成するための最良の方法は何ですか? 完全にカスタムのナビゲーション バー (複数のボタン、カスタムの高さなど) を作成する標準的な方法はありますか?

4

1 に答える 1

0

Githubプロジェクトに従って、ファイル CVTFirstViewController.h で 2 番目のビュー コントローラーのモーダル プレゼンテーション スタイルを変更してください。

このコードを使用

     secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;

それ以外の

     secondViewController.modalPresentationStyle = UIModalPresentationCustom;
于 2014-07-29T09:41:35.993 に答える