我在UITableView
中創建了自定義單元格。樣式設置爲自定義。標識符設置爲customCell。附件設置爲Detail。表視圖內容設置爲動態原型。單元格中的數據發生更改後,UITableView中的自定義單元格將無法正確加載
該表格載入了來自核心數據的數據,並且在第一次出現時就顯示爲完美。當用戶點擊單元格中的詳細圖標時,會出現一個新的視圖,以便用戶可以編輯單元格中的數據並將其保存爲核心數據。當用戶完成編輯並點擊保存按鈕時,視圖返回到UITableView
,但剛剛編輯的單元格顯示爲「基本」單元格,而不是customCell。如果點擊單元格,它將突出顯示,並且自定義單元格內容會顯示在基本單元格內容上。
我似乎無法解決此問題。任何人都可以提出建議
這裏是prepareForSegue
發送到編輯視圖控制器的部分:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UITableViewCell*)sender {
if ([[segue identifier]isEqualToString:@"editPunchItemSegue"]) {
// DEFINE SEGUE DESTINATION
UINavigationController *navigationController = segue.destinationViewController;
EditPunchItemViewController *editPunchItemViewController = (EditPunchItemViewController*)navigationController.topViewController;
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
Punchitem *editPunchItem = (Punchitem*)[self.fetchedResultsController objectAtIndexPath:indexPath];
editPunchItemViewController.editPunchitem = editPunchItem;
而現在,在目標視圖控制器,其中,所述核心數據被編輯時,這裏是saveButtonPressed方法的一部分:
if ([_editSaveButton.title isEqualToString:@"Save"]) {
NSLog(@"Save Button has been PRESSED");
editPunchitem.punchitemRoomNumber = _editPunchitemRoomNumberField.text;
editPunchitem.punchitemDescription = _editPunchitemDescriptionField.text;
editPunchitem.punchitemLocation = _editPunchitemLocationField.text;
editPunchitem.punchitemRoomName = _editPunchitemRoomNameField.text;
editPunchitem.punchitemDate = _editPunchitemDateField.text;
// SAVE TO MANAGE OBJECT CONTEXT!
[super saveAndDismiss];
}
有什麼建議嗎?
這是我在TableViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Running %@ '%@'", self.class, NSStringFromSelector(_cmd));
static NSString *CellIdentifier = @"customCell";
// USING CUSTOM PROTOTYPE CELL:
CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Configure the cell...
Punchitem *punchitem = [self.fetchedResultsController objectAtIndexPath:indexPath];
// USING CUSTOM PROTOTYPE CELL:
cell.cellLocationLabel.text = punchitem.punchitemLocation;
cell.cellDescriptionLabel.text = punchitem.punchitemDescription;
cell.cellRoomNameLabel.text = punchitem.punchitemRoomName;
return cell;
}
保存cellForRowAtIndex和罷免是一個子類的一部分。這裏是方法:
-(void) saveAndDismiss {
NSError *error = nil;
if ([self.managedObjectContext hasChanges]) {
if (![self.managedObjectContext save:&error]) { //SAVE FAILED
NSLog(@"YOUR SAVE FAILED! %@", [error localizedDescription]);
} else {
NSLog(@"SAVE SUCCEEDED!");
}
}
[self dismissViewControllerAnimated:YES completion:nil];
}
什麼保存和dissmiss做的,請出示cellAtRowIndex,它看起來像服用點被改寫你的故事板 – meda
我只是說我的cellForRowAtIndex在我的原始張貼 – Jupiter869
嘗試使用廈門國際銀行原型細胞。 –