如何使用故事板将两个UINavigationControllers指向一个视图控制器?

时间:2012-10-19 17:04:21

标签: ios uinavigationcontroller ios6 uistoryboard

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

故事板设置如下所示: storyboard screenshot

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

如果我断开 两个导航控制器连接之一,则集合视图的剩余连接将起作用,并且收集项将按预期显示。 storyboard with one connection removed

这是重用集合视图的正确方法吗?我是如何将两个导航控制器与segue连接到单个UICollectionView的?

1 个答案:

答案 0 :(得分:0)

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

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

希望有帮助...