Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:如果没有导航控制器,如何返回初始视图控制器_Ios_Swift - Fatal编程技术网

Ios Swift:如果没有导航控制器,如何返回初始视图控制器

Ios Swift:如果没有导航控制器,如何返回初始视图控制器,ios,swift,Ios,Swift,我一直在使用XLPagerTabStrip在视图控制器的顶部有效地创建一个选项卡栏,其中显示多个子视图控制器(来源:) 让我们调用这些子视图控制器A1、B1和C1。在子视图控制器中是表视图,一旦点击,表视图将所有子视图控制器分段到一个新的视图控制器(A2)。我希望能够从A2回到第一个视图控制器。我已尝试向所有子视图控制器添加导航栏,并使用navigationController?.popToRootViewControllerAnimated(true)方法,但当按下包含此代码的按钮时,什么也没

我一直在使用XLPagerTabStrip在视图控制器的顶部有效地创建一个选项卡栏,其中显示多个子视图控制器(来源:)

让我们调用这些子视图控制器A1、B1和C1。在子视图控制器中是表视图,一旦点击,表视图将所有子视图控制器分段到一个新的视图控制器(A2)。我希望能够从A2回到第一个视图控制器。我已尝试向所有子视图控制器添加导航栏,并使用navigationController?.popToRootViewControllerAnimated(true)方法,但当按下包含此代码的按钮时,什么也没有发生。我还尝试在承载子视图控制器的初始视图控制器中嵌入导航控制器,但这也不起作用(不确定这是否是因为子视图控制器A1、B1和C1未连接到情节提要中的主视图控制器)。

设置视图控制器的设置。然后:

let vc = self.storyboard?.instantiateViewController(withIdentifier: "someID")
Swift 2

self.showViewController(vc, sender: self)
Swift 3

self.show(vc, sender: self)
设置视图控制器的名称。然后:

let vc = self.storyboard?.instantiateViewController(withIdentifier: "someID")
Swift 2

self.showViewController(vc, sender: self)
Swift 3

self.show(vc, sender: self)

非常感谢。我将代码的最后一行改为self.showViewController(vc,发件人:self)以使其正常工作,不过编辑您的答案可能值得:)并不是最好的选择
vc
是一个新实例,它不会神奇地重用以前的实例。在
UINavigationController
中嵌入A1、B1和C1,您就拥有了控制器堆栈。谢谢。我将代码的最后一行改为self.showViewController(vc,发件人:self)以使其正常工作,不过编辑您的答案可能值得:)并不是最好的选择
vc
是一个新实例,它不会神奇地重用以前的实例。在
UINavigationController
中嵌入A1、B1和C1,就有了控制器堆栈。