gpt4 book ai didi

ios - 按后退导航箭头时将数据传递到父 View Controller

转载 作者:行者123 更新时间:2023-11-30 13:19:10 25 4
gpt4 key购买 nike

我见过很多将数据从 View Controller 传递回导航堆栈中的父级的方法,尽管我认为我要描述的情况应该很常见,但这些似乎都不能解决它。我想做的事:

  1. 将 subview Controller 推送到导航堆栈上。我在父 View Controller 的 prepareForSegue(_:sender) 中设置了它的属性。
  2. 编辑 subview Controller 的属性。到这里一切正常。
  3. 点击后退箭头按钮(位于左上角)时, subview Controller 应该弹出(自动发生),并且需要将编辑后的数据传递回父 View Controller 。

如果我可以在 Storyboard中设置展开操作,这会很容易,但这是不可能的,因为箭头后退按钮仅在运行时显示。当按下该箭头时,似乎不会对子项调用 prepareForSegue(_:sender)canPerformUnwindSegueAction(_:fromViewController:withSender)unwindForSegue(_:towardsViewController)segueForUnwindingToViewController(_:fromViewController:identifier:) 都不是 child 或 parent 。

按照建议here我可以重写子级的 viewWillDisappear 方法并从导航堆栈访问父级,但是父级必须有一种方法可以在某处访问子级,否则这将是一个糟糕的设计,对吧?我很感激任何帮助!我的目标是 iOS 7+。

最佳答案

您可以使用委托(delegate)和设置,例如:

  • 子 Controller 是父 Controller 的属性。
  • parent 作为子 Controller 的委托(delegate)属性。 (始终委托(delegate)弱属性)

您可以从子级的任何位置访问父级,只需使用 child.delegate。以及通过属性(property)从 parent 那里得到的 child 。

关于ios - 按后退导航箭头时将数据传递到父 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37933427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com