继续误解

Segue misunderstanding

我对 segue 在我的应用程序中的工作方式有点困惑。

我有 TabBarController,我的 ViewController 嵌入在 NavigationController

我将标识符添加到 segue“mySegue”。所以当我在 ViewController 中执行某些操作时,我 运行

performSegue(withIdentifier: "mySegue", sender: self)

所以执行了segue,但是我有一些我不明白的地方。

  1. 显示的视图没有标签栏和导航栏。为什么?我认为它们应该默认可见。

  2. 我希望 segue 是动画的 - 这样视图将从右到左呈现,而且我将能够展开它(只需轻扫即可返回)。但是向后滑动不起作用,视图是从下到上呈现的。为什么呢?

您应该将 segue 的类型设置为 Push - 这样导航控制器将发布层次结构并且它实际上将被推送到其堆栈,因此得名。

如果你想让你的segue水平移动,你需要为segue使用(Show e.g push),像这样。它默认向后滑动

因为这不是我第一次遇到这个问题 - 我需要指出问题出在哪里。当似乎 segue 中的所有内容都以正确的方式进行但它没有按应有的方式工作时,它可能会对其他人有所帮助。

在我的例子中 - 这是因为 segue 是在界面生成器中通过不从 ViewController 的黄色圆圈拖动到第二个 ViewController 而创建的。 Segue 是从 ViewController 中的一个子视图甚至 TableView / TableViewCell 创建的。所以在那种情况下,它不会在 NavigationController 中创建 segue。