我有一个带有嵌入式NavigationController的基本ViewController来提供ToolBar。 ToolBar有三个按钮,用于通过segue调用ViewControllers来显示数据。
逐位显示和解除每个数据ViewController是没有问题的,但我想在呈现ViewControllers的所有三个数据之间切换,但不会多次解除和重新打开ViewControllers。
基本ViewController是TabBarController的一部分。所以,我不想为VC1创建另一个 - 3.我的目标是使用按钮在VC1,2和3之间切换,但我不知道如何启动。我试图使用:
找到打开的ViewControllerViewController1 *presenter = [(UITabBarController *)self.presentingViewController viewControllers][0];
但它只是告诉我NavigationController是呈现的ViewController。但是没有办法要求NavigationController打开的ViewControllers。有什么想法吗?
谢谢!
答案 0 :(得分:1)
好的,我想我终于明白你在做什么了。您有一个带工具栏的基本视图控制器。单击工具栏上的三个按钮中的任何一个将显示三个视图控制器之一。这些视图控制器还显示一个工具栏,允许您在这三个视图控制器之间切换,但您希望这些视图控制器在用户在它们之间切换时保持不变。用户完成后,可以单击导航栏上的后退按钮弹出所有这些视图控制器并返回基本视图控制器。是吗?
子视图控制器是否需要使用工具栏而不是UITabBarController
? UITabBarController
将为您保留对所有三个视图控制器的引用,您不必在它们之间进行切换。例如,基本视图控制器仍然可以有三个按钮,按钮将pushViewController:animated:
一个带有三个视图控制器的新UITabBarController
,并且它还会根据按下的按钮选择所选的视图控制器。这可能会让事情变得更容易。
我提出这个的原因是我认为尝试使用导航控制器在这三个VC之间进行切换并不是导航控制器的正确用法。像这样的片段意味着传达这些VC之间的等级关系,但它们看起来像兄弟姐妹而不是彼此的孩子。