0

我想要的是

一个完全自定义的导航栏,它将持续存在并允许用户通过自定义模式转换进行交互。

我做了什么

我构建了一个父视图控制器,它在底部包含一个容器视图,在顶部包含一个视图(自定义导航栏)。Container View 嵌入了一个视图控制器,可以模态地呈现其他视图控制器。

模态显示的视图控制器使用自定义转换(UIViewControllerTransitioningDelegate)从底部弹出,并且只占用底部视图控制器的一部分(即让菜单可见)。

当第一个视图控制器以模态方式呈现时,仍然可以与自定义导航菜单进行交互。但是,如果第一个模态呈现的视图控制器依次呈现另一个视图控制器,则自定义导航栏不会响应用户交互。

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

(续)

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

当第一个视图控制器以模态方式呈现时,导航栏仍然响应触摸。当第二个(以及该行下的任何其他人(即第 3、第 4 ......))出现时,导航栏仍然可见,但不响应用户触摸。

Github上有一个示例项目,说明了我遇到的问题。

我的问题是什么

无论我以模态方式呈现了多少视图控制器,我都希望能够点击导航栏。

我接近这项工作的方式应该吗?

完成我想做的事情的最佳方法是什么?是否有创建完全自定义导航栏的标准方法(即几个按钮、自定义高度等)?

4

1 回答 1

0

请根据Github项目更改文件 CVTFirstViewController.h 中第二个视图控制器的模态呈现样式。

使用此代码

     secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;

代替

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