完全自定义的导航栏,它将保留并允许用户通过自定义模态转换进行交互。
我已经构建了一个父视图控制器,它包含底部的Container视图和顶部的视图(自定义导航栏)。容器视图嵌入了一个视图控制器,可以以模态方式显示其他视图控制器。
以模态方式呈现的视图控制器使用自定义转换(UIViewControllerTransitioningDelegate)从底部弹出,仅占据底部视图控制器的一部分(即保持菜单可见)。
当第一个视图控制器以模态方式显示时,仍可以与自定义导航菜单进行交互。但是,如果第一个模态呈现的视图控制器依次呈现另一个视图控制器,则自定义导航栏不会响应用户交互。
| NAV BAR |
|-----------| |------------| |------------|
| Container | | View | | View |
| view |-> EMBED -> | Controller |-> Presents -> | Controller |-> Presents ->
| | | | Modally | 1st | Modally
(续)
|------------|
| View |
->| Controller |
| 2nd |
当第一个视图控制器以模态方式显示时,导航栏仍会响应触摸。当第二个(以及该线下的任何其他线路(即第3个,第4个......))出现时,导航栏仍然可见但不响应用户触摸。
Github上有一个示例项目,说明了我遇到的问题。
无论我以模态方式呈现多少个视图控制器,我都希望能够点按导航栏。
我应该接近这项工作吗?
完成我想做的最好的方法是什么?有没有标准的方法来创建完全自定义的导航栏(即几个按钮,自定义高度等)?
答案 0 :(得分:0)
请根据Github项目在文件CVTFirstViewController.h中更改第二个视图控制器的模式表示样式。
使用此代码
secondViewController.modalPresentationStyle = UIModalPresentationCurrentContext;
而不是
secondViewController.modalPresentationStyle = UIModalPresentationCustom;