iOS在视图之间传递消息,基于窗口的应用

时间:2011-06-16 11:00:20

标签: objective-c ios ipad

所以我现在正在开发基于iPad窗口的应用程序。会有很多视图,我希望在它们之间传递一些简单的数据,主要是字符串(id),告诉下一个视图要加载什么。

只是想知道如何解决这个问题?我遇到过这个< http://idisk.mac.com/DChampney-Public/ViewControllerDataSharing.zip>解决方案似乎是最好的,但我被抓住了时间,这对我来说可能有点矫枉过正。

可以在appdelegate中创建一个字符串,我可以存储下一个视图要读取的ID吗?

欢迎任何想法..

感谢。

1 个答案:

答案 0 :(得分:3)

  1. 在视图控制器上定义properties以传递对象(例如所有Core Data示例和模板中的NSManagedObjectContext)
  2. 使一个视图控制器成为另一个视图控制器的delegate,用于传递数据作为事件的结果(例如选择一个tableview行,这就是UITableViewDelegate的工作原理)
  3. 通过NSNotificationCenter使用发布/订阅模式在对象之间进行同步通知。这应该只用于多个对象可能发布或订阅的地方,或者对象之间的连接距离很远的地方(它们之间有几个视图控制器)。对于async pub / sub,请使用NSNotificationQueue
  4. 不要将AppDelegate用作应用程序的数据包。改变,糟糕的设计和难以阅读是痛苦的。