我正在构建一个应用程序,我希望在两个不同的视图控制器之间共享一个可变的NSArray。
之所以如此,是因为在其中一个viewcontrollers(main)上我需要主动检查数组的内容,如果满足某些属性则显示警告,而另一个viewcontroller(UI)是用户的UI将警报对象设置为所述数组并在tableview中管理警报对象。
所以我的问题是这个数组可能位于我的应用程序委托中吗?
或者我最好将它驻留在主(根视图控制器)中并基本上将其传递给第二个UI视图控制器并每次动态填充UItableview,然后将其传回以更新主要的数组? / p>
答案 0 :(得分:9)
有很多方法可以做到这一点。它依赖于viewControllers的层次结构和问题。
你可以:
使用segue / delegate向前和向后传递此数组:Passing Data between View Controllers
将数组作为一个视图控制器的属性,将此viewController的弱引用传递给另一个视图控制器,然后访问类似viewController1.array的内容
在每个viewController中创建一个属性并将其与KVC同步:http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i
等