如何“虚拟”点击导航栏中的后退按钮

时间:2015-08-14 14:08:42

标签: ios swift uinavigationcontroller uisegmentedcontrol uicontainerview

我有app,我的导航栏里面有Segmented Control。在导航栏下我有3个容器。在这些容器中,我有表视图控制器。如果您点击分段控件,则会出现一个TVC而其他人消失(container1.hidden = true等等)。

问题是当我按下导航控制器中的“保存”按钮时 - 按钮不会触发“虚拟按下后退按钮”。

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

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

图片以获得更好的洞察力: enter image description here

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

最初,我有ViewController。我将这个控制器嵌入到导航控制器中。对于这个导航控制器,我连接了segues。这是错误的。 所以我在导航控制器中删除了这个嵌入,将(show)segues直接发送到我的View Controller(截图上)。这个自动创建的导航栏,我做的最后一件事是我把导航项放在里面,所以现在我的代码弹出右导航控制器。希望这是可以理解的。

1 个答案:

答案 0 :(得分:1)

I have couple ideas:

  1. Your navigationController equal to 'nil' and .popViewControllerAnimated will never invoked. This may happen if you are using UITabBarController. In this case try to use self.tabBarController?.navigationController instead of self.navigationController.

  2. Your controller presented 'Modally'. In this case you can try to invoke navController.dismissViewControllerAnimatedinstead of navController.popViewControllerAnimated