【问题标题】:Push segue from ViewController to a TableViewController not working从 ViewController 推送 segue 到 TableViewController 不起作用
【发布时间】:2015-03-22 09:42:41
【问题描述】:

我有一个普通的 ViewController,我已经添加了一个按钮来对表视图控制器进行推送。我的应用程序中有一个标签栏,我需要将其保留在所有视图中。但是当我在运行应用程序时进行 segue 时,出现以下错误。

SGenericException Reason: Could not find a navigation controller for segue 'View'. Push segues can only be used when the source controller is managed by an instance of UINavigationController.

我搜索并发现我必须嵌入导航控制器,我做到了。但我仍然得到那个错误。谢谢。

【问题讨论】:

  • 为什么要在应用程序运行时创建 segue。如果您将视图控制器上的 segue 添加到表视图控制器,它将自动推送。您不必创建它。
  • 我的意思是,当我在运行应用程序时尝试按下按钮以将我转移到表格视图中时,我已经连接了情节提要中的 push segue,然后我收到了该错误。在我的故事板中,我只是将前一个视图控制器中的按钮与 tableviewcontroller 连接起来,没有任何代码。刚刚添加了segue的类型。
  • 您是否在视图控制器中添加了 uinavigationcontroller?我猜你的视图控制器没有导航控制器。
  • @user3882720 请查看发布的链接和答案下方的 cmets。按照我的答案中所示的步骤将您的 VC 添加到导航控制器,然后将此导航控制器嵌入到您的标签栏控制器

标签: ios objective-c iphone uiviewcontroller


【解决方案1】:

解决了。 Jassi你是对的。我只需要在第一个视图控制器中添加一个导航控制器。这正是我所做的。我在我的 firstviewcontroller 中嵌入了一个导航控制器,并且只是做了 push segue。我没有在具有 tableview 的视图中嵌入导航控制器。感谢您的回复。

【讨论】:

    【解决方案2】:

    没有足够的信息继续下去,你尝试过弹出而不是推送吗? 你需要一个 navigationController 来“推送”一个视图

    【讨论】:

    • 不,我只是尝试了模态视图。我需要在每个下一个视图控制器中保持我的标签栏可见。这就是为什么我用 push 来尝试。正如我所提到的,我的 viewController 是标签栏的一部分。所以我不能嵌入导航控制器。
    • 将按钮设置为弹出框的锚点,不应影响 tabBar 在当前视图中弹出时的影响。
    • 尝试这样做。您要添加的第一个视图控制器,将其添加到具有根视图的导航控制器中。然后不要添加另一个导航控制器。您仍然会有标签栏。
    • 在我尝试的每一个 segue、push、popover 中,我都会遇到同样的错误。只有模态我没有错误,我可以继续。 modal 的唯一问题是我无法保留我的标签栏。
    猜你喜欢
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    相关资源
    最近更新 更多