当前位置:  开发笔记 > IOS > 正文

使用3D Touch Peek&Pop时,以模态方式呈现提交视图控制器而不是推送

如何解决《使用3DTouchPeek&Pop时,以模态方式呈现提交视图控制器而不是推送》经验,为你挑选了1个好方法。

我有一个应用程序,允许用户查看UICollectionViewController嵌入在其中的照片UINavigationController.当用户点击查看照片时,我会在全屏模式下呈现一个新的视图控制器(不是默认的全屏).我现在想要实现一个3D Touch提交(弹出)视图控制器,使其与用户点击照片时完全一样.问题是,当弹出全屏幕照片时,幕后的iOS会将此视图控制器推到堆栈上 - 导航栏仍然可见,它会添加一个后退按钮以返回上一个屏幕.我不希望这样,我希望提交视图控制器以模态方式呈现.

我注意到如果我删除导航控制器,iOS将以模态方式呈现提交视图控制器而不是推送.但我无法删除我的导航控制器,它仍然只是全屏显示而不是全屏.

如何更改默认行为,以便在原始视图控制器嵌入导航控制器内时,提交视图控制器以模式方式显示在全屏上而不是压入堆栈?

我试图设置modalPresentationStyle.OverFullScreen当我配置在提交的视图控制器previewingContext:commitViewController:.这似乎没有任何区别.

目前的行为是一个问题,原因有以下几点:
- 我出现在整个屏幕上,以便底层的视图控制器仍在下方可见,模糊不清.当它被推动时,这种效果无法实现.
- 我使用自定义过渡呈现全屏照片UIViewControllerTransitioningDelegate,并且它也会在关闭时转换.在推送后解除此操作时,它仅执行默认的弹出动画而不是我的自定义动画.



1> Jordan H..:

弄清楚了!只需设置modalPresentationStyle.OverFullScreen,而且非常重要的,而不是调用showViewControllerpreviewingContext:commitViewController:,调用presentViewController.简单.不敢相信我在发帖之前没有看到.:)

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有