【问题标题】:How to "virtually" tap back button in Navigation Bar如何“虚拟”点击导航栏中的后退按钮
【发布时间】:2015-11-07 19:55:28
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

  • 你能发布更多代码吗?特别是 popViewControllerAnimated 在上下文中的位置?
  • 当然,我更新了我的问题。谢谢:)
  • 您是否检查了它是否在 if 条件和 navigationController ist set 中跳转?如果是,则检查推送当前可见内容的 navigationController 是否与self.navigationController 相同。

标签: ios swift uinavigationcontroller uisegmentedcontrol uicontainerview


【解决方案1】:

我有几个想法:

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

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

【讨论】:

  • navigationController 不等于 nil(已测试)。我也不使用 UITabBarController(在我之前的项目中我使用,self.navigationController.pop... 工作正常),但我使用 UIViewController。我开始真的绝望了
  • @Lachtan 1. 你试过 .dismissViewControllerAnimated 吗? 2、可以去掉if let navController = self.navigationController直接调用.popViewControllerAnimated吗? 3. 我需要更多关于你的层级的信息,你能做到吗?
  • 也可以打印self.navigationController?.parentViewController吗?
  • 我可以。控制台:Optional(<UINavigationController: 0x7fb029da4430>)。但还是不行。我的层次结构很简单。我有 ViewController(+ 编辑器 - 嵌入 - 导航控制器)。在这个 VC 中,我有 3 个容器视图。当我按下 Uložit (~save) 按钮时,我想保存数据并返回包含已保存项目列表的 Table View Controller。
  • @Lachtan 1. 你能创建像this 这样的快照吗?这将帮助我找出问题所在。 2. Záznamy 会回到之前的控制器吗?
猜你喜欢
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多