如何更新存档和表视图单元格

时间:2012-11-16 23:45:12

标签: uitableview archive master-detail

我正在使用MasterDetail应用,并且在更新我的itemCells时出现问题。使用下面的DetailViewController中的代码,我希望能够在触摸单元格(有自定义ItemCell)后访问详细视图,编辑文本字段中的内容,点击保存按钮,更新项目数据,并弹回MasterViewController。

来自DetailViewController.m

- (IBAction)addItem:(id)sender

{

RoomItem *item = [[RoomItem alloc] initWithName:[_roomTxt text] Building:[_buildingTxt text]];

//add item is an addObject method i've placed in RoomList.m
[[RoomList sharedStore] addItem:item];

[self.navigationController popToRootViewControllerAnimated:YES];

}

很明显,这只是创建一个新的表视图项而不是更新原始文件,但我是一个愚蠢的菜鸟,无法在文档中找到任何东西来帮我解决这个问题。

想法? 如果我没有提供足够的信息/代码来准确解释这种情况,请告诉我。

另外,有没有办法通过UITableViewAccessory实现相同的功能?

感谢。

这对我有用。看来我没有正确地获取核心数据实体。但是,objectAtIndex查询仍然是一个问题,因为它只更新indexI:处的RoomItem。 如何获取我正在尝试更新的RoomItem的索引?

修改

- (RoomItem *)updateItemWithRoom:(NSString *)room Building:(NSString *)building
{
NSError *error = nil;

NSEntityDescription *entity = [NSEntityDescription entityForName:@"RoomItem" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];

RoomItem *currentRoomItem = [[context executeFetchRequest:request error:&error] objectAtIndex:0];
request = nil;

[currentRoomItem setRoom:room];
[currentRoomItem setBuilding:building];

[self saveChanges];

return currentRoomItem;
}

1 个答案:

答案 0 :(得分:0)

尝试使用重新加载数据调用viewdidappear从表视图重新加载数据。