首页 > 解决方案 > 尽管嵌入在导航控制器中,为什么后退按钮丢失并且视图以模态方式呈现?

问题描述

在我的应用程序增长后,我不得不更改我的“初始视图控制器”或我理解的“入口点”视图。所以我删除了我原来的原始导航控制器并将新创建的视图嵌入到新的导航控制器中。我取消选中最初是“初始视图控制器”的视图并选择了新创建的替换视图的“初始视图控制器”。尽管我的问题是尽管在加载模拟器时在情节提要上显示为嵌入在新的导航控制器中,但我的视图顶部有一个间隙,尽管情节提要上显示了后退按钮)模拟器中没有可见的后退按钮。视图以我理解为“模态”(从下到上)的方式呈现,并且可以通过向下滑动来删除。

在此处输入图像描述

我想要完成的是当视图嵌入到视图控制器中时的行为,并且后退按钮存在并从右到左进入(但我已经嵌入了我的初始视图控制器但行为仍然存在)

我已经确保(在创建 segues 以选择“显示”时)以及当我在经历了所描述的行为后删除了新的视图控制器并重新添加了暂时可见的后退按钮但在关闭和重新启动后它又回到了模态。

我确定有很多我没有解释,但我希望这对某人来说听起来很熟悉,我会回答我忽略解释的任何问题。对 Swift 来说仍然很新,任何帮助都非常感谢。谢谢你。

在此处输入图像描述

标签: swiftbuttonviewcontrollerback

解决方案


您似乎将故事板入口点设置为初始视图控制器,而不是导航控制器。这使得导航控制器几乎毫无用处,这就是为什么仍然以模态方式呈现事物的原因。第二张图片中有一个小箭头指向您的初始视图控制器(带有“注册”和“登录”按钮的屏幕)。它看起来像这样:

在此处输入图像描述

这是故事板的入口点。它应该在导航控制器而不是初始视图控制器上。您可以执行以下操作之一来解决问题:

将箭头拖放到导航控制器的左侧。

或者

选择导航控制器,然后在属性检查器中,选中“是初始视图控制器”。

构建并运行,你应该很高兴。

我看到了你所说的关于它如何在情节提要中显示后退按钮的内容,这就是我认为是这样的原因,但在模拟器中却没有:Xcode Storyboard 可能认为由于视图嵌入在导航控制器中,导航控制器将被加载,所以它显示了如果导航控制器实际加载会发生什么。但是由于故事板入口点直接跳过导航控制器,因此导航控制器在运行期间永远不会加载。


推荐阅读