我正在开发一个使用凹凸技术的应用程序。我确实有四个选项卡,其中一个是表格视图。我在应用程序委托类中编写了这个凹凸 API,以便当应用程序打开时它应该能够传输数据。传输功能正常工作。但问题是我将数据插入 sq-lite 并且来自 sqlite 的数据显示在选项卡栏项目视图之一中。因此,当用户选择此选项卡栏项目并接收数据时,我会喜欢插入并使用新更改重新加载视图。正如在插入之前所说的那样,我正在工作。但问题是重新加载视图。有人可以帮我解决这个问题吗?
问问题
155 次
1 回答
0
您可以在插入/编辑记录时使用 NSOperation 在后台执行插入并发布通知。将侦听器添加到您正在显示数据的视图控制器。
因此,每当控制器收到通知时,它都会调用该方法从数据库中重新加载数据。
@implementation MyClass
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[super dealloc];
}
- (id) init
{
self = [super init];
if (!self) return nil;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadData:) name:@"COREDATA_OBJECT_EDITED" object:nil];
return self;
}
- (void) reloadData:(NSNotification *) notification
{
if ([[notification name] isEqualToString:@"COREDATA_OBJECT_EDITED"])
{
//load records from database and reload tableview
}
}
@end
//Method where you are saving data objects in some other class
- (void) saveDataObject
{
//Save Data object, if saved successfully then post notification to listener to reload the data
// All instances of MyClass will be notified
[[NSNotificationCenter defaultCenter] postNotificationName:@"COREDATA_OBJECT_EDITED" object:self];
}
于 2012-05-28T07:55:38.693 回答