关于iphone:在两个ViewControllers之间共享NSArray数据

Share NSArray data between two ViewControllers

本问题已经有最佳答案,请猛点这里访问。

我正在构建一个应用程序,通过它,我希望在两个不同的视图控制器之间共享可变的NSarray。

原因是,在其中一个viewcontrollers(main)上,我需要主动检查数组的内容,如果满足某些属性,则显示警报,而另一个viewcontroller(ui)是用户将警报对象设置到所述数组并管理TableView中的警报对象的UI。

所以我的问题是,这个数组可以驻留在我的应用程序代表中吗?

或者我最好让它驻留在主视图(根视图控制器)中,并基本上将其传递给第二个UI视图控制器,每次动态填充其中的UITableView,然后将其传递回主视图以更新数组?


有很多方法可以做到这一点。它取决于视图控制器的层次结构和问题的层次结构。

你可以:

  • 创建一个singleton:http://www.galloway.me.uk/tutorials/singleton-classes/

  • 使用segue/delegate前后传递此阵列:在视图控制器之间传递数据

  • 将数组作为一个视图控制器的属性,将此视图控制器的弱引用传递给另一个,然后访问类似于viewController1.array的内容。

  • 在每个viewcontroller中创建一个属性,并将其与kvc同步:http://developer.apple.com/library/ios/documentation/cocoa/conceptive/keyValueObservation/keyValueObservation.html//apple-ref/doc/uid/10000177i

等。