我的应用中有以下设置: 我的初始视图控制器是一个UITabBarController。 标签:
1)UINavigationController-> PostListVC
2)UINavigationController-> CategoriesListVC
3)UINavigationController-> PostListVC
4)UINavigationController-> PostListVC
5)UINavigationController-> MoreViewController
如您所见,3个选项卡包含相同的viewController类,但不应包含相同的视图控制器对象 - 视图将根据从AppDelegate获取的信息显示不同的信息。
我做的是创建了5个UINavigationControllers,将它们连接到uitabbarcontroller,然后为其中3个创建了一个rootViewController segue到同一个PostListVC视图 - 这样我就不需要维护3个相同视图的设计了。 / p>
我得到的问题是只有第一个PostListVC被正确创建(标签栏最左边) - 指向PostListVC的其他标签只显示黑屏。
我试图用一个3-tab示例说明我连接故事板的方式:
如您所见,最高和最低视图都连接到PostListVC。
我不知道问题是什么。我假设我错误地使用了故事板。
有人知道如何解决这个问题吗?
谢谢!
修改 我已经创建了一个简单的示例项目(Xcode 5)来说明这个问题:
http://www.speedyshare.com/Srwfg/TabBarProblem.zip
编辑2: 该示例的修改版本,显示了所提供解决方案的问题: http://speedy.sh/JkdGC/TabBarProblem-2.zip
无法使用此方法创建不同的tabBarItems,并且无法放置barItems以使它们不在一行中 - 即使您尝试对segue的顺序进行查询。
答案 0 :(得分:0)
如你所说,你需要三个不同的PostListVC实例,那么你应该创建三个不同的PostListVC类型的viewcontroller,并将每个tab连接到它自己的。该类是相同的,但每个选项卡都有自己的实例。
答案 1 :(得分:0)
我已经让您的示例程序工作但我不知道该解决方案是否适用于您的整个项目。希望它会让你走上正确的轨道。
解决方案是使用ONE(1)导航控制器/嵌入式根视图,但是两个(2)从标签栏控制器中移位。这是图片:
多个UINavigationController
链接到同一个UIViewController
似乎存在问题。但是,相同的UINavigationController
链接到相同的UIViewController
没有问题,只要它们通过UITabBarController
单独实例化。