如何有条件地为导航控制器设置根视图控制器

3

我有一个导航控制器,根据我的应用程序状态,应该有不同的根视图。

如何在Interface Builder中建模呢?我已经将UINavigationController拖到了Storyboard中。现在我需要连接这两个视图控制器。

可惜我只能设置一个作为根视图控制器。我需要子类化导航控制器,并根据状态重置根视图控制器吗?

对于这种问题,最佳实践是什么?很希望在Interface Builder中可以可视化这种关系。

感谢您提前的任何帮助。


由于您想有条件地更改rootViewController,因此您可以拥有两个navigationController(每个都有不同的rootViewControllers),并根据您的条件呈现正确的一个(navigationController)。 - JoeFryer
如果您以编程方式实现此功能,那将很好。使用编程方式设置rootviewcontrollers。 - A J
你有一个被导航控制器嵌入的视图控制器。根据某些条件(是什么?),您需要连接到两个可能的控制器中的一个。这个操作如何实现?使用按钮吗? - Marius Waldal
@marius:我实际上有一个选项卡控制器。第一个选项卡是一个视图控制器,嵌入到了导航控制器中。然而,为了简单起见,假设布尔值被设置为true,则嵌入的视图控制器需要是不同的。我希望我能表达清楚。也许我应该创建一个单独的导航控制器来嵌入另一个导航控制器,并替换选项卡控制器的第一个选项卡。 - kukudas
我刚刚意识到我想要切换根视图而不是转场。已经编辑了问题。对此感到抱歉。 - kukudas
这个问题的任何答案对你有帮助吗? - JoeFryer
2个回答

4

由于您想有条件地更改根视图控制器,因此您可以创建两个不同的导航控制器,每个导航控制器都具有不同的视图控制器作为其根视图控制器。

然后,您可以根据条件呈现适当的导航控制器。


1

有两个跳转(一个到viewcontrollerA,另一个到viewcontrollerB)。你的导航控制器将确定应用程序状态并调用performSegue来将用户移动到正确的视图控制器。


1
设置导航控制器时,根视图控制器需要吗? - kukudas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接