从导航控制器移回视图控制器?

Posted

技术标签:

【中文标题】从导航控制器移回视图控制器?【英文标题】:move back to View Controller from Navigation Controller? 【发布时间】:2018-06-07 12:08:45 【问题描述】:

我是 Swift 开发的初学者,但我一度陷入困境。我有一个 ViewController1(入口点)、导航控制器和 ViewController2。 ViewController2 包含 XLPagerTabStrip 并嵌入到导航控制器中。我可以使用以下代码从 ViewController1 移动到导航控制器。

let navigationController = mainStoryBoard.instantiateViewController(withIdentifier: "NavigationController") as! UINavigationController

let viewController = mainStoryBoard.instantiateViewController(withIdentifier: "ParentViewController") as! ParentViewController
navigationController.pushViewController(viewController, animated: true)

self.present(navigationController, animated: true, completion: nil)

现在的问题是我无法从导航控制器移回 ViewController1。

能够从 ViewController1 -> NavigationController -> ViewController2

移动

但无法后退,即 ViewController1

提前致谢。

【问题讨论】:

【参考方案1】:

试一试

navigationController?.popViewController(animated: true)

dismiss(animated: true, completion: nil)

【讨论】:

popViewController 不工作。单击返回时再次显示相同的 VC2。但解雇完成了这项工作。这有点奇怪。 有什么奇怪的【参考方案2】:

在你的代码中删除这一行:

self.present(navigationController, animated: true, completion: nil)

当您想搬回来时,只需致电:

navigationController?.popViewController(animated: true)

【讨论】:

【参考方案3】:

看起来你在一行中遗漏了自我,所以如果你更新它看起来像这样:

self.navigationController.pushViewController(viewController, animated: true)

它现在应该可以工作了......

【讨论】:

以及为什么你同时推送和呈现视图控制器 虽然这可能会回答问题,但最好包含一些关于此答案如何帮助解决问题的描述。请阅读How do I write a good answer?。

以上是关于从导航控制器移回视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章

移回父视图控制器或关闭子视图控制器

从导航控制器导航到普通视图控制器

从导航栏视图控制器导航到标签栏视图控制器

从搜索控制器导航后缺少导航栏

如何在目标 c 中从其他子视图控制器导航子视图控制器

从视图控制器呈现导航视图 - IOS 7