【发布时间】:2013-11-05 17:51:23
【问题描述】:
我的应用中有以下设置: 我的初始视图控制器是一个 UITabBarController。 标签:
1)UINavigationController->PostListVC
2)UINavigationController->CategoriesListVC
3)UINavigationController->PostListVC
4)UINavigationController->PostListVC
5)UINavigationController->MoreViewController
如您所见,3 个选项卡包含相同的 viewController 类,但不应包含相同的视图控制器对象 - 视图将根据他从 AppDelegate 获得的信息显示不同的信息。
我所做的是我创建了 5 个 UINavigationController,将它们连接到 uitabbarcontroller,然后为其中的 3 个创建了一个 rootViewController segue 到同一个 PostListVC 视图——这样我就不需要维护同一个视图的 3 个设计。
我得到的问题是,只有第一个 PostListVC 被正确创建(标签栏中最左边的) - 指向 PostListVC 的其他标签只显示黑屏。
我尝试使用一个 3-tab 示例来说明我连接情节提要的方式:
如您所见,最上面和最下面的视图都连接到 PostListVC。
我不知道问题是什么。我认为我使用情节提要有些错误。
有人知道我该如何解决这个问题吗?
谢谢!
编辑: 我创建了一个简单的示例项目(Xcode 5)来说明这个问题:
http://www.speedyshare.com/Srwfg/TabBarProblem.zip
编辑 2: 该示例的修改版本,显示了所提供解决方案的问题: http://speedy.sh/JkdGC/TabBarProblem-2.zip
无法使用此方法创建不同的 tabBarItems,也无法放置 barItems 以使它们不在一行中 - 即使您尝试更改 segues 的顺序。
【问题讨论】:
-
此处信息不足,无法提供帮助,但图像中没有任何内容表明存在错误。我建议在每个视图控制器中添加一些
NSLogs(可能是viewDidLoad),以确保传递正确的信息并实例化正确的 UIViewController 类。请注意,每个都应该是唯一的。这是调试如此复杂的东西的唯一方法。 -
viewDidLoad 和 loadView 都只调用一次 - PostListVC 可能没有正确实例化,但我不知道为什么。
-
需要检查的几件事: IB 内部的类设置是否正确? PostListVC 中的
NSLogs 告诉你什么?视图是否在 IB 中连接?除了这些问题,我不确定我能否提供帮助。 -
我添加了一个示例项目来说明这个问题
-
这对我来说似乎是一个错误。我建议您在bugreporter.apple.com 与 Apple 记录您的初始问题(示例项目 1),说明如果您使用解决方案(示例项目 2),您不能有不同的项目名称。
标签: ios storyboard viewcontroller