如何 "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。希望它是可以理解的。
我有几个想法:
您等于 'nil' 和 .popViewControllerAnimated
的 navigationController 永远不会被调用。如果您使用的是 UITabBarController,则可能会发生这种情况。在这种情况下尝试使用 self.tabBarController?.navigationController
而不是 self.navigationController
.
您的控制器显示 'Modally'。在这种情况下,您可以尝试调用 navController.dismissViewControllerAnimated
而不是 navController.popViewControllerAnimated
我有应用程序,我的导航栏内的分段控件在哪里。在导航栏下我有 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。希望它是可以理解的。
我有几个想法:
您等于 'nil' 和
.popViewControllerAnimated
的 navigationController 永远不会被调用。如果您使用的是 UITabBarController,则可能会发生这种情况。在这种情况下尝试使用self.tabBarController?.navigationController
而不是self.navigationController
.您的控制器显示 'Modally'。在这种情况下,您可以尝试调用
navController.dismissViewControllerAnimated
而不是navController.popViewControllerAnimated