我想要的是
一个完全自定义的导航栏,它将持续存在并允许用户通过自定义模式转换进行交互。
我做了什么
我构建了一个父视图控制器,它在底部包含一个容器视图,在顶部包含一个视图(自定义导航栏)。Container View 嵌入了一个视图控制器,可以模态地呈现其他视图控制器。
模态显示的视图控制器使用自定义转换(UIViewControllerTransitioningDelegate)从底部弹出,并且只占用底部视图控制器的一部分(即让菜单可见)。
当第一个视图控制器以模态方式呈现时,仍然可以与自定义导航菜单进行交互。但是,如果第一个模态呈现的视图控制器依次呈现另一个视图控制器,则自定义导航栏不会响应用户交互。
| NAV BAR |
|-----------| |------------| |------------|
| Container | | View | | View |
| view |-> EMBED -> | Controller |-> Presents -> | Controller |-> Presents ->
| | | | Modally | 1st | Modally
(续)
|------------|
| View |
->| Controller |
| 2nd |
当第一个视图控制器以模态方式呈现时,导航栏仍然响应触摸。当第二个(以及该行下的任何其他人(即第 3、第 4 ......))出现时,导航栏仍然可见,但不响应用户触摸。
Github上有一个示例项目,说明了我遇到的问题。
我的问题是什么
无论我以模态方式呈现了多少视图控制器,我都希望能够点击导航栏。
我接近这项工作的方式应该吗?
完成我想做的事情的最佳方法是什么?是否有创建完全自定义导航栏的标准方法(即几个按钮、自定义高度等)?