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

Why Are Back Buttons Missing & Views Being Presented Modally Despite Being Embedded In A Navigation Controller?

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

enter image description here

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

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

我敢肯定有很多我没有解释清楚,但我希望这对某些人来说听起来很熟悉并且我会回答我忽略解释的任何问题。 Swift 仍然很新,我们真诚地感谢您的帮助。谢谢。

enter image description here

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

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

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

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

构建并 运行 你应该可以开始了。

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

期间永远不会加载导航控制器

您的控制器不在导航堆栈中。您只配置了控制器的导航栏。

请尝试以下步骤。

  1. Select 故事板中的视图控制器。
  2. 转到顶部菜单 Editor->Embed In->Navigation Controller

就这些了。