【发布时间】:2019-07-26 00:20:21
【问题描述】:
当我在 XCode 中启动一个新的单视图 iOS 应用程序项目时,我可以在使用“弹出式”VC 的同时使用 Interface Builder 对背景产生模糊效果,没有任何问题。让我先解释一下我是如何做到的:
- 打开 XCode,新建一个 Single View iOS Application 项目
- 创建一个视图控制器,然后创建第二个视图控制器。
- 通过替换现有的“视图”对象(通过在文档大纲中拖放到它的顶部),将“带模糊的视觉效果视图”对象添加到第二个 VC。
- 创建从 1st VC 到 2nd VC 的转场并选择“Present Modally”选项
- 在第二个 VC 的“Presentation”选项中选择“Over Current Context”
- 最后,当我构建并运行并使用按钮触发 segue 时,第 2 个 VC 来自底部,第 1 个 VC 在背景中显示为模糊。
一切都按预期进行。
但是,我无法通过完全相同的步骤在现有的 iOS 应用项目中获得相同的结果。在这个现有项目中,我使用了表格视图、表格视图控制器、容器视图和其他 UI 元素。然而,为了测试它,我在这个现有项目中创建了一个单独的、独立的 VC,创建了一个新的初始导航控制器,并采取了与我上面解释的完全相同的步骤,即创建新的第一个和第二个 VC。即使与现有的代码和设计没有任何联系,我仍然无法在我的测试中获得第一个 VC 的模糊和可见背景。 segue 发生后,背景为白色,第一个 VC 根本不可见。没有一个地方是模糊的。
可能有一个线索:在我现有的项目中,当我在segue或第二个VC的选项中选择“Over current context”选项时,第二个VC的背景颜色在Interface Builder中变为白色。但在我的测试项目中,此颜色在此选择时保持为灰色。问题可能与此有关。
如果我在创建 segue 之前在 2nd VC 中选择“Over current context”,则在 Interface Builder 中的 2nd VC 中背景保持灰色。然而,当我将 segue 创建为“模式呈现”时,Interface Builder 中的第二个 VC 中的背景变为白色。
我不知道为什么我上面解释的步骤在这个现有项目中不起作用,但它在一个全新的项目中起作用。
我尝试清理构建文件夹,尝试重新启动我的 XCode (v10.3),尝试重新启动我的 Mac (v10.14.5),但我想不出其他任何东西。我已经花了很多时间,我不明白为什么这在这个现有项目中不起作用。可能是什么原因,任何想法将不胜感激。
【问题讨论】: