Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.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 在UIStoryboard之间来回切换_Ios_Swift - Fatal编程技术网

Ios 在UIStoryboard之间来回切换

Ios 在UIStoryboard之间来回切换,ios,swift,Ios,Swift,我有两个故事板,每个都有不同的UINavigationController。我希望每个导航看起来都不同,因此有多个导航 AStoryBoard ANavigationController--(RootViewController)-->AViewController->…其他视图控制器 BStoryBoard BNavigationController--(RootViewController)-->BViewController 我想用后退按钮从AViewController跳到BViewCo

我有两个故事板,每个都有不同的UINavigationController。我希望每个导航看起来都不同,因此有多个导航

AStoryBoard
ANavigationController--(RootViewController)-->AViewController->…其他视图控制器

BStoryBoard
BNavigationController--(RootViewController)-->BViewController

我想用后退按钮从
AViewController
跳到
BViewController
并返回到
AViewController

当我使用从
AViewController
BStoryBoard
的序列时,
BViewController
出现在
ANavigationController
上。但是我想使用
BNavigationController
。这就是我的方法

 func goToBFlow() {
    // Get storyboard
    let storyboard: UIStoryboard = UIStoryboard(name: "BStoryBoard", bundle: nil)
    let navigationController = storyboard.instantiateViewController(withIdentifier: "BNavigationController") as! UINavigationController
    self.window?.rootViewController = navigationController
}

这和预期的一样,但我不能回去了。这是正确的方法吗?

如果您已关闭导航控制器,则无法“返回”。您可以保存以前的视图控制器层次结构,然后重新安装根视图控制器以返回。将B navigationcontroller模式地显示在导航控制器上可能更简单。然后你可以把它打发回去,这是有道理的。有没有其他方法可以实现我的目标?如果不显式保存以前的整个导航控件,则不需要“保存”太多;只需保持对上一个
rootViewController
的强引用即可。你可以像我建议的那样,用模态表示B如果你关掉了导航控制器,你就不能“返回”。您可以保存以前的视图控制器层次结构,然后重新安装根视图控制器以返回。将B navigationcontroller模式地显示在导航控制器上可能更简单。然后你可以把它打发回去,这是有道理的。有没有其他方法可以实现我的目标?如果不显式保存以前的整个导航控件,则不需要“保存”太多;只需保持对上一个
rootViewController
的强引用即可。你可以按照我的建议,以适当的方式呈现B