我正在构建一个应用程序,我想在两个不同的视图控制器之间共享一个可变的 NSArray。
原因是,在其中一个视图控制器(主)上,我需要主动检查数组的内容,如果满足某些属性会显示警报,而另一个视图控制器(UI)是用户设置的 UI将警报对象放入所述数组并在表格视图中管理警报对象。
所以我的问题是这个数组可能驻留在我的应用程序委托中的什么地方?
还是我最好让它驻留在主(根视图控制器)中,基本上将它传递给第二个 UI 视图控制器并每次动态填充 UItableview,然后将它传回以更新主上的数组?
我正在构建一个应用程序,我想在两个不同的视图控制器之间共享一个可变的 NSArray。
原因是,在其中一个视图控制器(主)上,我需要主动检查数组的内容,如果满足某些属性会显示警报,而另一个视图控制器(UI)是用户设置的 UI将警报对象放入所述数组并在表格视图中管理警报对象。
所以我的问题是这个数组可能驻留在我的应用程序委托中的什么地方?
还是我最好让它驻留在主(根视图控制器)中,基本上将它传递给第二个 UI 视图控制器并每次动态填充 UItableview,然后将它传回以更新主上的数组?
有很多方法可以做到这一点。这取决于您的视图控制器和您的问题的层次结构。
你可以:
创建一个单例:http ://www.galloway.me.uk/tutorials/singleton-classes/
使用 segue/delegate 前后传递这个数组:在视图控制器之间传递数据
将数组作为一个视图控制器的属性,将此视图控制器的弱引用传递给另一个,然后访问类似 viewController1.array
在每个 viewController 中创建一个属性并将它们与 KVC 同步:http: //developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i
等等。