ios - 如何从容器/父 View Controller 和多个 subview Controller 共享数据数组
<p><p>我有一个场景,其中有一个父容器 ViewController ,其 subview 占据了大部分屏幕。该 subview 用于交换相同数据的 3 个不同 View ( map 、表格和图库)。有一个分段控件,用于选择用户想要查看的数据 View 。我在父容器 ViewController 中有一个我的模型类型的数组集合,我想让这 3 个不同的 subviewController 分别在各自的 View 中显示这些数据。是否有任何干净的方法可以做到这一点而不必复制数据 4 次(一次在父项中,3 次在子项中)?我假设我将不得不复制数据,因为 child 不应该能够调用父 ViewController 来访问它的数组。这也不是一个合适的继承情况,因为父级更像是一个容器而不是相同类型的 ViewController 。这也不是委托(delegate)的情况,因为 child 不需要通知 parent 任何事情,反之亦然。</p>
<p>非常感谢任何建议。</p>
<p>谢谢。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我将创建一个类(下面的 MyDataController)来管理数据,并使用共享实例从我的应用程序中的任何位置访问它。</p>
<p>接口(interface)(MyDataController.h)</p>
<pre><code>@interface MyDataController : NSObject {
NSMutableArray *myData; // this would be the collection that you need to share
}
+ (MyDataController*)sharedDataController;
// ... add functions here to read / write your data
@end
</code></pre>
<p>实现(MyDataController.m)</p>
<pre><code>static MyDataController* sharedDataController; // this will be unique and contain your data
@implementation MyDataController
+ (MyDataController*)sharedDataController
{
if (!sharedDataController)
sharedDataController = [[ init] autorelease]; // no autorelease if ARC
return sharedDataController;
}
// ... implement your functions to read/write data
@end
</code></pre>
<p>最后,从任何地方访问这个静态对象:</p>
<pre><code>MyDataController *dataController = ; // this will create or return the existing controller;
</code></pre></p>
<p style="font-size: 20px;">关于ios - 如何从容器/父 ViewController 和多个 subviewController 共享数据数组,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/15007813/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/15007813/
</a>
</p>
页:
[1]