iphone - 使用 UINavigationController 和默认后退按钮时如何将数据传回父 View ?

标签 iphone ios delegates uiviewcontroller uinavigationcontroller

背景 - 因此,就高层的方法而言,对我来说似乎是:

  1. 在执行一系列 UINavigationController 级别时保存/保留设置 - 因此当最初开始更改设置或创 build 置时,将需要一组默认值 - 即在应用程序死机的任何时间点设置将有效
  2. 边走边保存更改,一旦您从屏幕的 UINavigationController 树中返回(设置了所有设置),就会有一个可以保存的点

这个问题的重点是我试图实现的选项 2。

计划 - 在设置类型 UINavigationController 中,当 subview 被推送到堆栈时,我打算将一部分设置的现有(或默认)详细信息从父 View 传递到 subview 。问题是当这些数据被更新时,假设我想坚持使用默认的后退按钮,似乎没有办法拦截默认的后退按钮,所以当我准备好将 child 从堆栈中弹出时就在这之前,我将调用一个委托(delegate),它将最新设置传回给父级。

问题 - 当使用 UINavigationController 并希望坚持使用默认的后退按钮(带有左箭头的东西)时,如何将更新后的数据从子 Controller 传递回父 Controller 。

也就是说,我想可能我不知道如何传回数据(我将使用委托(delegate)),而是如何在子 Controller 中的正确时间点连接到回调方法以便然后使用委托(delegate)方法将数据传回。

最佳答案

使用 Delegate 可能是适合您的解决方案。

可以找到教程:

http://timneill.net/2010/11/modal-view-controller-example-part-2/

这对我很有帮助。

编辑:

  1. 听起来你需要自己制作一个后退按钮,信息:

UINavigationController "back button" custom text?

然后添加方法:

[self.navigationController popViewControllerAnimated:YES]; 

返回上一个 View 。然后,您可以将自己的代码添加到该后退按钮。

  1. 更简单的解决方案:实现“viewWillDisapper”方法。

每次按下后退按钮时都会调用此方法。但要注意它是否转到另一个 View 而不是返回。

关于iphone - 使用 UINavigationController 和默认后退按钮时如何将数据传回父 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546662/

相关文章:

iphone - UISwitch - 从开/关更改为是/否

iphone - 关于Apple的KMLViewer placemarkDescription and annotation subtitle

ios - Xamarin Monotouch CustomCell 为空

ios - 如何在 viewDidLoad 之前检测设备方向?

c# - 未将对象引用设置为对象的实例 - WCF 服务和委托(delegate)(WCF 在委托(delegate)实例化之前托管)

c# - (如何)是否可以绑定(bind)/重新绑定(bind)一个方法来与不同签名的委托(delegate)一起工作?

ios - 如何通过页脚单元格在表格 View 中使用委托(delegate)?

iphone - 正则表达式检测 $<name> 时出现问题

iphone - YouTube api v3 对 iOS 视频的评论

ios - AVCaptureSession 扫描特定帧中的二维码