4

我正在尝试将两个 UINavigationControllers(代表选项卡栏应用程序中的不同选项卡)连接到单个 UICollectionViewController。集合视图控制器将根据哪个导航控制器是父级来填充不同的数据。当两个导航控制器都连接时,导航到第二个选项卡会显示黑屏,并且集合视图的控制器中的 viewWillAppear() 代码不会触发。导航到第一个选项卡时,所有内容都会触发并正确显示并填充数据。

故事板设置如下所示: 故事板截图

导航控制器连接到集合视图控制器,如下所示: 转接连接

如果我断开两个导航控制器连接中的任何一个,则与集合视图的剩余连接将正常工作,并且集合项将按预期显示。 删除了一个连接的情节提要

这是重用集合视图的正确方法吗?我如何将带有 segues 的两个导航控制器连接到单个 UICollectionView 是否缺少一些东西?

4

1 回答 1

0

我看到这已经快一年了,所以我不确定你是否找到了答案,但我想如果需要我会帮忙回答。在不了解您的项目太多的情况下,我可以问您为什么希望 tabBarController 将其两个视图控制器都指向同一个?让我想知道为什么 tabBarController 是必要的。

建立一个测试项目,我目睹了你所做的同样的事情。我唯一能想到的是,当通过 Storyboard 实例化视图控制器时,它会创建它的一个实例并存储在 tabBarController 的 viewControllers[i] 属性中,其他选项卡可能无法在层次结构中访问该属性。最好从 Storyboard 复制视图控制器对象并将其粘贴到情节提要的另一个区域,并让 tabBarController 实例化同一视图控制器对象的新实例。这样,在您的 viewDidLoad 方法中,您可以知道 selectedIndex 是什么,并知道如何加载数据、更改界面等。复制/粘贴 Storyboard 视图控制器应该保持您设置的任何出口/操作的完整性。

希望有帮助...

于 2013-09-11T19:19:54.980 回答