【问题标题】:How to point two UINavigationControllers to one view controller using storyboards?如何使用情节提要将两个 UINavigationControllers 指向一个视图控制器?
【发布时间】:2012-10-10 08:25:32
【问题描述】:

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

情节提要设置如下所示:

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

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

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

【问题讨论】:

    标签: ios uinavigationcontroller ios6 uistoryboard


    【解决方案1】:

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

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

    希望对您有所帮助...

    【讨论】:

    • 原因是视图控制器的布局和逻辑在各个选项卡中是相同的,但呈现的数据是不同的。我没有重新访问这个项目,所以现在可能有更好的方法来做到这一点。
    猜你喜欢
    • 2012-11-05
    • 2015-09-14
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    相关资源
    最近更新 更多