iphone - 在 UINavigation 类型的应用程序中,如何在 View Controller 之间进行通信?

标签 iphone ios ios4 uinavigationcontroller

我有一个基于 UINavigation 的应用程序,它收集各种屏幕上的信息,并最终使用收集到的所有参数发出 Web 服务请求。

所以我有 A、B、C、D View Controller 。 A 获取姓名和号码,然后将 B 推送到屏幕上,其中包含一些基本信息 ETC ETC,直到它到达 D,在那里我实际启动了网络服务。

我一直使用的糟糕方法是从 A 开始复制类字段。这意味着如果我收集名称和编号,那么我将这些字段设为 B 的字段,然后添加一些字段,然后 C 具有 A 和 B 的类字段,这似乎是一种糟糕的编程习惯。

我怎样才能访问 D 类中 A 类的字段?我有一些想法,但不确定它们的有效性。

1).使用 NSNotification(这是矫枉过正吗?)如果是这样,我该如何传递字段? 2).我是否只保留所有 5 个 View Controller 并在最后获取信息? (看起来效率很低)

3).我是否应该只实例化一个名为 Payload 的 NSObject 类,并在每次从一个 View Controller 跳转到下一个 View Controller 时设置它的字段? (如果是这样,我是否在 A 类中创建它?如果用户导航回 A 类,它会被重置吗 ETC ETC)

如您所知,我已尝试找到解决方案,但我对它还很陌生。非常感谢一些详细的建议。

最佳答案

根据情况,有几种方法似乎合适。

  1. 了解MVC Design Pattern

  2. 类不是数据存储。如果类没有与表示的对象交互的接口(interface),不包括访问器,那你就错了。

3.

I have a UINavigation based application that gathers information on various screens and eventually makes a web service request using all the parameters collected.

因此,您的 Web 请求基于从各种 View 收集的参数。为什么不创建一个 所述请求的模型? MyRequest 或类似的东西 :) 或几个更具体的变体,共享共同的父类?这个生成器保存逻辑,在你通过 View 前进时收集数据和参数,并在末尾提供 NSUrlRequest 给 WebView 或者可能是不同类型的对象,它是 NSURLRequest 委托(delegate)并符合 UITableViewDataSource/Delegate 协议(protocol),用于显示下载的数据。

关于iphone - 在 UINavigation 类型的应用程序中,如何在 View Controller 之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6158363/

相关文章:

iphone - 在 iOS 中使用电子邮件 uri 方案的附件

iphone - 如何使 UITabBarController 延迟加载 View Controller ?

ios - 中心 Google map 位置发生变化,同时保持底部填充

iphone - 我们可以对多个 ios (ipad/iphone) 应用程序使用相同的图标吗?

ios - LSApplicationQueriesSchemes 下的 Info.plist 中缺少 fbauth2 并且是 iOS 9.0 所必需的

ios - NSHTTPCookie:expiresDate 始终为空

iphone - Instagram 或 Hipstamatic 如何进行照片滤镜?

iphone - AVPlayerStatus 与 AVPlayerItemStatus

iphone - UIButton 中的轮廓文本/字体

ios - 如何使包显示名称长度超过 12 个字符