迅速。 NavigationController。有条件地改变子视图控制器的顺序

时间:2018-06-05 22:18:58

标签: ios swift uinavigationcontroller uistoryboardsegue rootviewcontroller

如果我有一个带有2个子视图控制器(vcA和vcB)的navigationController的故事板,其中vcA被设置为navigationController的根视图控制器,故事板segue将vcA连接到vcB(vcA和vcB显示 alternate 查看同一对象的方法)。

这是一个合理的设计模式(如果是这样,我该怎么做)在应用程序启动时根据用户首选项更改导航堆栈中子viewControllers的顺序。如果用户更喜欢以vcB中显示的方式查看对象,我可以以某种方式覆盖故事板中的顺序,并在应用启动时使vcB成为navigationController的根viewController。因此,如果用户首选项是“vcB视图”,则navigationControllers顺序为navigationController - > vcB< - > vcA与normal的比较,其中navigationController的顺序是navigationController - > vcA< - > VCB。

理想情况下,我希望继续使用故事板来帮助导航栏按钮配置等

如果无法做到或建议这样做,在app启动时有条件地向用户显示不同的navigationController子viewController的建议方法是什么。

{{3}}

1 个答案:

答案 0 :(得分:0)

你应该可以这样做:

1)除了图像中显示的segue之外,还要创建另一个从navController到vcB的Push segue,以及从vcA到vcB的另一个Push sugue。

2)使用performSegue(withIdentifier:“segue_name”,sender:self)在开始时有条件地加载vcA或vcB。

3)在vcA和vcB中使用performSegue根据相同的条件相互转换。