如何 "virtually" 点击导航栏中的后退按钮

How to "virtually" tap back button in Navigation Bar

我有应用程序,我的导航栏内的分段控件在哪里。在导航栏下我有 3 个容器。在这些容器中,我有 Table 个视图控制器。如果您点击分段控件,一个 TVC 出现而其他的消失(container1.hidden = true 等等)。

问题是当我按下也在导航控制器中的 "save" 按钮时 - 按钮没有触发 "virtual push of back button"。

我使用了以下在我的其他项目中有效的代码(它在包含所有容器视图的 VC 中的按钮操作中)但这次不行:

if let navController = self.navigationController {
   navController.popViewControllerAnimated(true)
}

图像以获得更好的洞察力:

更新:感谢@Alexey Bondarchuk 我解决了它。评论可能令人困惑,所以我只是回顾一下问题和解决方案。

本来我有ViewController。对于这个控制器,我嵌入了导航控制器。我将 segues 连接到这个导航控制器。那是错误的。 所以我删除了导航控制器中的这个嵌入,直接(显示)segues 到我的视图控制器(在屏幕截图上)。这是自动创建的导航栏,我做的最后一件事是将 navigation item 放入其中,所以现在我的代码弹出右侧的 navigationController。希望它是可以理解的。

我有几个想法:

  1. 您等于 'nil' 和 .popViewControllerAnimated 的 navigationController 永远不会被调用。如果您使用的是 UITabBarController,则可能会发生这种情况。在这种情况下尝试使用 self.tabBarController?.navigationController 而不是 self.navigationController.

  2. 您的控制器显示 'Modally'。在这种情况下,您可以尝试调用 navController.dismissViewControllerAnimated 而不是 navController.popViewControllerAnimated