• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何从容器/父 View Controller 和多个 subview Controller 共享数据数组

[复制链接]
菜鸟教程小白 发表于 2022-12-13 01:10:31 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个场景,其中有一个父容器 View Controller ,其 subview 占据了大部分屏幕。该 subview 用于交换相同数据的 3 个不同 View ( map 、表格和图库)。有一个分段控件,用于选择用户想要查看的数据 View 。我在父容器 View Controller 中有一个我的模型类型的数组集合,我想让这 3 个不同的 subview Controller 分别在各自的 View 中显示这些数据。是否有任何干净的方法可以做到这一点而不必复制数据 4 次(一次在父项中,3 次在子项中)?我假设我将不得不复制数据,因为 child 不应该能够调用父 View Controller 来访问它的数组。这也不是一个合适的继承情况,因为父级更像是一个容器而不是相同类型的 View Controller 。这也不是委托(delegate)的情况,因为 child 不需要通知 parent 任何事情,反之亦然。

非常感谢任何建议。

谢谢。



Best Answer-推荐答案


我将创建一个类(下面的 MyDataController)来管理数据,并使用共享实例从我的应用程序中的任何位置访问它。

接口(interface)(MyDataController.h)

@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

实现(MyDataController.m)

static MyDataController* sharedDataController; // this will be unique and contain your data

@implementation MyDataController

+ (MyDataController*)sharedDataController
{
    if (!sharedDataController)
        sharedDataController = [[[MyDataController alloc] init] autorelease]; // no autorelease if ARC
    return sharedDataController;
}

// ... implement your functions to read/write data
@end

最后,从任何地方访问这个静态对象:

MyDataController *dataController = [MyDataController sharedDataController]; // this will create or return the existing controller;

关于ios - 如何从容器/父 View Controller 和多个 subview Controller 共享数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007813/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap