【问题标题】:how send data to new view [duplicate]如何将数据发送到新视图[重复]
【发布时间】:2016-06-29 19:37:41
【问题描述】:

请帮忙。我需要将数据从视图发送到新视图。我有那个故事板。 StoryBoard

在第一个视图中我有代码

override func prepare(for segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "LEDChangesSegue" {
        let changeLED = segue.destinationViewController as? AddLED
            changeLED?.senderCell = sender as? LEDListCell
            changeLED?.ledController = sender!.ledController
            changeLED?.update = true
    }
}

这种方法在我使用 push segue 时有效,但现在我使用模态 segue 和 segue.destinationViewController 是 NavigationController,不是我的 TableViewController

【问题讨论】:

    标签: ios swift storyboard segue


    【解决方案1】:

    每个导航控制器都有一系列呈现的控制器。同样,如果您的控制器位于顶部(现在显示),您可以使用此代码获取它navigationController.topViewController 否则,您需要遍历所有控制器并使用此代码获取您的控制器

    let navController: UINavigationViewController = segue. destinationViewController
    for let controller in navController.viewControllers {
        if let neededController = controller as? YourControllerType {
       // your action
    }
    }
    

    您也可以使用 UIViewController 的 IBInspectable 属性创建自定义 segue,该属性将在其中存储您的控制器。之后,您可以将您的 segue 转换为您的自定义 segue,并从该属性中获取您的控制器。

    【讨论】:

      【解决方案2】:

      使用新的目的地作为 VC 来调用你的下一个 tableViewController

      let destination = segue.destinationViewController
      if let navcon = destination as? UINavigationController {
          destination = navcon.visibleViewController!
      }
      if let hvc = destination as? TableViewController{
         // do whatever
      }
      

      【讨论】:

      • 太好了,不客气!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-15
      • 2017-10-19
      相关资源
      最近更新 更多