【问题标题】:Swift Segue IssueSwift Segue 问题
【发布时间】:2016-12-22 07:41:37
【问题描述】:

我有兴趣从一个 xib 文件(当点击一个按钮时)从一个表格视图单元格到另一个视图控制器。我无法显示 segue(通过主故事板),因为它们不在同一个故事板上。我想知道这是否可以通过编程方式完成,如果可以,使用什么样的代码。

如果您需要更多详细信息,请告诉我。

【问题讨论】:

  • 从 xib 然后你不能,你必须以编程方式进行,只有当你在 tableView 内的故事板中设计单元格时它才可用,你不需要使用 xib 来设计自定义单元格

标签: ios swift segue


【解决方案1】:

您以编程方式显示视图控制器的选项包括以下功能

在视图控制器中

  • presentViewController
  • dismissViewController

从导航堆栈上的视图控制器中

  • pushViewController
  • popToViewController
  • popToRootViewController
  • popViewController

使用哪个函数取决于视图控制器出现的上下文。

对于呈现视图控制器,如果您正在使用 XIB 和情节提要,那么通常的模式是首先从 XIB 或情节提要中实例化视图控制器,然后使用 presentViewController 呈现它。

一个例子是

let vc = UIViewController(nibName: "NAME_OF_THE_NIB", bundle: NSBundle.mainBundle())
self.presentViewController(vc, animated: true) {
    // Add completion code here.
}

通过导航堆栈,您可以使用方便的功能来推送和弹出视图控制器。

为了明确术语,这些方法均不被视为 Segue。该术语仅适用于在故事板中的视图控制器之间移动。

【讨论】:

    【解决方案2】:

    如果您的单元格和视图控制器位于不同的故事板中,您可以(从 iOS 9 开始)使用故事板引用在它们之间使用 segue。

    Adding a Segue Between Two Storyboards

    如果您的单元格在自己的 .xib 中,很遗憾,您无法使用 segue。

    【讨论】:

      【解决方案3】:

      Segue 在视图控制器之间。所以你不能在 xib 中这样做,因为它只是视图。您应该在表格视图的视图控制器中显示/推送视图控制器。你可以像这样得到它的视图控制器:

      tableView.viewController // and then present/push
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多