【问题标题】:Adding additional UINavigationController to a child view controller将额外的 UINavigationController 添加到子视图控制器
【发布时间】:2014-05-23 05:43:06
【问题描述】:

我正在开发一款 iPad 应用程序,该应用程序显示了一个从窗口一侧滑出的较小视图。我需要这个视图独立于应用程序的其余部分运行,并且我需要它有自己的导航控制器,以便可以在它的表视图中执行 segues。提出这种观点不是问题。我遇到的问题是我无法弄清楚如何将 UINavigationController 设置为拥有这个较小视图的根视图。

我通过将其视图控制器添加为带有addChildViewController: 的子视图来呈现此视图,然后将其移动到父视图(呈现视图控制器)。

我在我的故事板中创建了小视图控制器,然后通过它的标识符加载视图控制器。这是故事板的相关部分...

视图加载没有问题,但是当我选择一个依次调用 [self performSegueWithIdentifier:gameIdentifier sender:self]; 的单元格时,我收到以下错误

Terminating app due to uncaught exception 'NSGenericException', reason: 'Could not find a navigation controller for segue 'Trivia'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.'

我尝试将视图嵌入故事板的导航控制器中,但结果相同。

我很乐意提供任何澄清或其他详细信息。任何建议都非常感谢!谢谢!

【问题讨论】:

    标签: ios uinavigationcontroller storyboard segue


    【解决方案1】:

    您需要在导航控制器中嵌入“游戏奖励视图”,然后当您调用 addChildViewController: 时,将导航控制器作为参数传递,而不是游戏视图。

    【讨论】:

    • 我试过了,好消息是我的表格视图现在执行它们的 segues(所以它们有一个导航控制器),但坏消息是滑出的视图现在大小不合适,并且现在正在发生各种其他错误。所以,我开始认为这个问题更深了,我需要重新考虑我的视图层次结构。
    • @timgcarlson,您之前在游戏视图中所做的任何调整(当您将其添加为子视图时)现在都应该在导航控制器的视图中完成。
    猜你喜欢
    • 2013-10-15
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2015-09-04
    • 2013-06-05
    • 1970-01-01
    • 2014-06-13
    相关资源
    最近更新 更多