Swift:如果没有导航控制器,如何返回初始视图控制器
Posted
技术标签:
【中文标题】Swift:如果没有导航控制器,如何返回初始视图控制器【英文标题】:Swift: How to return to the initial view controller if there is no navigation controller 【发布时间】:2016-06-21 15:30:11 【问题描述】:我一直在使用 XLPagerTabStrip 在我的视图控制器顶部有效地创建一个标签栏,其中显示了多个子视图控制器(来源:https://github.com/xmartlabs/XLPagerTabStrip)
让我们将这些子视图控制器称为 A1、B1 和 C1。在子视图控制器中是表视图,一旦被点击就会将所有子视图控制器转移到一个新的视图控制器(A2)。我希望能够从 A2 回到第一个视图控制器。我尝试将导航栏添加到所有子视图控制器并使用 navigationController?.popToRootViewControllerAnimated(true) 方法,但是当按下包含此代码的按钮时,没有任何反应。我还尝试在托管子视图控制器的初始视图控制器中嵌入导航控制器,但这也不起作用(不确定这是否是因为子视图控制器 A1、B1 和 C1 未连接到故事板)。
【问题讨论】:
【参考方案1】:设置视图控制器的storyboard id。那么:
let vc = self.storyboard?.instantiateViewController(withIdentifier: "someID")
斯威夫特 2
self.showViewController(vc, sender: self)
斯威夫特 3
self.show(vc, sender: self)
【讨论】:
谢谢。我将代码的最后一行更改为 self.showViewController(vc, sender: self) 以使其正常工作,因此可能值得编辑您的答案:) 并不是最好的选择。vc
是一个新实例,它不会神奇地重用以前的实例。将 A1、B1 和 C1 嵌入到 UINavigationController
中,您就拥有了控制器堆栈。以上是关于Swift:如果没有导航控制器,如何返回初始视图控制器的主要内容,如果未能解决你的问题,请参考以下文章