【问题标题】:From ViewController to TableViewController从 ViewController 到 TableViewController
【发布时间】:2014-05-09 00:20:59
【问题描述】:

我有一个关于 iOS7 的问题。我有一个带有 ViewController 的默认故事板设置。我添加了另一个 TableViewController 并使用 ViewController 上的按钮将它们链接起来。 Xcode 允许链接,但是当我运行应用程序时,Xcode 崩溃并出现以下错误。

2014-03-29 20:58:34.862 VC 到 TableView[4668:60b] *** 终止应用程序 由于未捕获的异常'NSGenericException',原因:'Push segues 只能在源控制器由实例管理时使用 UINavigationController.'

为什么我不能进行上述设置?我已经尝试在前面使用 NavigationController,它可以工作。

【问题讨论】:

  • 问题似乎是您的根控制器需要是 UINavigationController 才能使用推送序列。从对象库中拖动 UINavigationController 并将其放在初始视图控制器之前,它们将自动连接,现在您可以使用推送 segues。
  • 谢谢@Idindu - Wain 有同样的回复,但没有回答为什么这是不可能的。你知道为什么需要 UINavigationController 吗?
  • push segues 仅在根控制器中有 uinavigationcontroller 时才起作用,否则它将无法识别 push segues。

标签: ios uinavigationcontroller uistoryboard segue


【解决方案1】:

错误信息的原因很清楚:

'只有在源控制器由 UINavigationController 的实例管理时才能使用推送序列。'

根本原因是:如果没有导航控制器,推送会去哪里...

因此,您需要一个导航控制器或者您需要使用模态转场。

【讨论】:

  • 如果我按下按钮,为什么不能带我到 TableViewController?
  • link这家伙好像明白了。他有三个按钮,每个按钮都有一个 TableViewController
  • 它没有解释它是如何工作的......你为什么不想使用导航控制器?
  • 好吧,我同意它什么也没解释。我正在学习,所以我在玩,发现这不容易理解。也许 Apple 有一些 UI 设计方面的考虑。
  • 事情就是这样。导航控制器维护一个可以推入的堆栈。如果你想推动你使用导航控制器。
【解决方案2】:

解决方案非常简单。要拥有 Push/Pop Segue,您需要将视图嵌入到 UINavigationController 中。

  1. 选择第一个 ViewController
  2. 从菜单栏,选择编辑器 > 嵌入 > 导航 控制器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2011-01-15
    相关资源
    最近更新 更多