【发布时间】:2020-01-26 13:45:54
【问题描述】:
我有一个非常简单的项目,其中一个视图控制器嵌入在导航控制器中。我想推一个具有透明度的新视图控制器,它实际上允许底层控制器的一部分显示出来。
在推送转换期间,底层控制器的某些部分确实会通过正在推送的新控制器显示,但是当转换完成时,底层控制器视图会从视图层次结构中移除,并且新控制器的透明部分会显示出来黑色。
根据Apple,
当使用 UIModalPresentationFullScreen 样式呈现视图控制器时,UIKit 通常会在过渡动画完成后移除底层视图控制器的视图。您可以通过指定 UIModalPresentationOverFullScreen 样式来阻止删除这些视图。当呈现的视图控制器具有让底层内容显示出来的透明区域时,您可能会使用该样式。
在初始化推送的按钮操作期间,我确实将呈现的(推送的)视图控制器的 modalPresentationStyle 指定为 UIModalPresentationOverFullScreen:
let semiController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SemiViewController")
semiController.modalPresentationStyle = .overFullScreen
self.navigationController?.pushViewController(semiController, animated: true)
我认为我不必为此指定自定义过渡。那么是什么给出的呢?
谢谢。
【问题讨论】:
标签: ios uinavigationcontroller transparency pushviewcontroller