Closed DevWhan closed 2 years ago
这个跟你的 modal.contentViewController 是否要用一个 UINavigationController 类型的 vc 好像没什么关系?
这个跟你的 modal.contentViewController 是否要用一个 UINavigationController 类型的 vc 好像没什么关系?
- 半屏 modal 用系统 present 的方式显示出来
- modal 里的某个按钮 touch 后,用 modal 背后那个主体的 vc 的 navigationController 去 push 你要展示的新界面。
感谢你的回答 我在描述一下背景, 其实我考虑的也是项目内统一使用的浮层方案(无论是全屏还是半屏), 因为此前使用QMUIMP大多数是那种打断操作或者一些表单输入项(不会再跳转新页面), 最近业务调整时, 会有继续跳转新页面的诉求(原页面不会关闭), 技术上我是希望能统一一套实现方案. 所以我问了这个问题. present通过定制确实可以实现,但是不如QMUIMP来的灵活, 所以还是想请教下
我说的第1点的系统 present 不是指让你自己用 present 去实现一个半屏浮层,而是指 modal 本身就支持以 present 的方式来显示,注释和 Demo 里都有写。
我说的第1点的系统 present 不是指让你自己用 present 去实现一个半屏浮层,而是指 modal 本身就支持以 present 的方式来显示,注释和 Demo 里都有写。
感谢你的回答 这个我最开始有试过通过presentViewController, 后面的navi也会push一个新页面. 但是用户能看到的最上层页面还是模态弹出的那个页面. 为了避免理解偏差, 我写了个demo, 麻烦有时间指点一下 代码 TestPresent.zip 视频 https://user-images.githubusercontent.com/13635764/147742198-3622e5e0-a9bd-4d18-93a2-cb8e8cb841d5.mov
但是用户能看到的最上层页面还是模态弹出的那个页面.
哦也是...那你可以选择注释里的第三种,add view 的形式试试
但是用户能看到的最上层页面还是模态弹出的那个页面. 哦也是...那你可以选择注释里的第三种,add view 的形式试试
add view肯定是可以的, 但是受super view的大小限制. 想着浮层最好设计上就是全屏的, 以此来满足后面业务的不同需要. 所以前面我会问1和2两个问题. 如果按照苹果present后push的推荐, 应该是present一个root为vc的navi, 但是QMUIMP限制了present必须是QMUIMP实例, 而QMUIMP本身继承于UIViewController, 又不支持包一个navi(试了一下不行), 那按照这个思路的话, 我就在想QMUIMP本身能否扩展支持这种场景, 因为我又想使用QMUIMP带来的灵活性, 又想像系统present那样可以支持push.
当然这主要是在于QMUIMP理念上是一个纯"浮层"还是一个可以支持跳转的浮层(像present一样), 想听下你们是怎么考虑这个的
原理上是做不到你要的效果的。
你希望的就是 vcA 弹出 modal,modal 里是 UINavigationController,UINavigationController.rootViewController 是一个半屏样式的 vcB,此时你要在 UINavigationController 里直接打开 vcC,那你就会看到 push 动画过程中 vcB 和 vcC 重叠了一部分,而且导航栏一个要显示一个要隐藏,这些你都无法处理的,或者说你要处理的话成本还不如我完全用纯 UIView 来实现各种复杂界面效果。要考虑性价比。
原理上是做不到你要的效果的。
你希望的就是 vcA 弹出 modal,modal 里是 UINavigationController,UINavigationController.rootViewController 是一个半屏样式的 vcB,此时你要在 UINavigationController 里直接打开 vcC,那你就会看到 push 动画过程中 vcB 和 vcC 重叠了一部分,而且导航栏一个要显示一个要隐藏,这些你都无法处理的,或者说你要处理的话成本还不如我完全用纯 UIView 来实现各种复杂界面效果。要考虑性价比。
如果是add view的话, 直接add view会受父容器大小的限制. 我想了一个比较曲线的方案, 有一些弊端, 但是可以满足诉求. 先present一个自定义的nav,和自定义的rootvc. 在rootvc viewDidLoad时, 使用QMUIMP add view的方式来进行展示. 使用上可能没有那么丰富的回调了, 但是跳转和浮层应该没啥大问题感觉. 如果你有时间麻烦再帮我看看有无大的问题,非常感谢 demo TestPresent.zip
业务上有个诉求, 弹出一个半屏的浮层, 在浮层的内容区域可以通过点击按钮push到一个新的全屏的页面 我通过contentViewController=navi, 尝试了使用showWithAnimated和presentViewController, 最终都是push到了一个新的半屏页面. 翻看了下源码, 目前没有找到一种可行的方案, 请问下目前QMUIModalPresentationViewController有没有什么使用方式可以实现这个诉求? 感谢