Ios 在两个表视图之间共享数据
我有两个表视图,其中包含一个可变的对象数组,用户可以使用各种属性实例化这些对象。该类及其属性位于表视图访问的单独的Ios 在两个表视图之间共享数据,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有两个表视图,其中包含一个可变的对象数组,用户可以使用各种属性实例化这些对象。该类及其属性位于表视图访问的单独的.h和.m文件中 我希望这两个表视图看起来相同,以便当用户在一个表视图中添加、删除或移动对象时,第二个表视图会立即更新。我知道他们将共享一个可变数组,但我不确定将它放在哪里,以便一个表视图中的更改在另一个表视图中发生 此外,在这种情况下,我是否会使其中一个表视图成为另一个表视图的子类?首先,您应该创建一个包含该可变数组的单例类,以便您可以在任何地方编辑/访问它,无论何时更新该数组都可
.h
和.m
文件中
我希望这两个表视图看起来相同,以便当用户在一个表视图中添加、删除或移动对象时,第二个表视图会立即更新。我知道他们将共享一个可变数组,但我不确定将它放在哪里,以便一个表视图中的更改在另一个表视图中发生
此外,在这种情况下,我是否会使其中一个表视图成为另一个表视图的子类?首先,您应该创建一个包含该可变数组的单例类,以便您可以在任何地方编辑/访问它,无论何时更新该数组都可以重新加载可见的表视图,如果另一个表视图也可见,请重新加载它(可以使用委托、观察者、通知中心),否则当您打开包含它的VC时,它将使用最后一次编辑进行更新,您还可以使用
viewDidAppear
将表重新加载到其中,作为另一个选项,而不是委托(如果这是应用程序的逻辑)
/.h
#import <Foundation/Foundation.h>
@interface GlobalData : NSObject
@property(nonatomic,retain)NSMutableArray*masterArray;
+(GlobalData*)shared;
@end
用法
[GlobalData.shared.masterArray addObject:"strData"];
假设有一个控制器拥有
NSMutableArray
对象和两个表视图
- 使用
功能,让两个表视图保留KVO
作为属性的strong
对象NSMutableArray
- 为
对象的所有者创建一个新的委托数组属性,如NSMutableArray
,在两个表视图类中实现NSArray
*delegates
协议,将表对象添加到MyArrayNotifier
数组中。现在,您可以在收到焦点消息时收到通知delegates
通知
作为您的数据模型。感谢您的回复。我想我理解了。我已经尝试导入了在我的项目中,通过创建一个singleton类,我将调用singleton
。在singleton.h
中,我有一个@属性(非原子)NSMutableArray*masterArray;
。我知道如何导入表视图文件中的类,但现在我不确定如何实现。我想我需要从类中实例化一个对象:Singleton*object=[[Singleton alloc]init]
然后通过这种方式访问masterArray
属性?就像对象。masterArray
。但是我如何使该对象在两个表视图之间保持更新和同步?示例代码很有帮助。单例的执行方式与我想象的稍有不同,谢谢!向下投票这是因为单例不会聚焦相同的键。
[GlobalData.shared.masterArray addObject:"strData"];