2015-09-15 104 views
-1

我有我的應用程序中的主和詳細TableViewControllers。如果用戶點擊了MasterTableViewController上的+號,那麼它將它們帶到DetailTableViewController中,他們可以在其中鍵入/編輯「標題」和「文本」。一旦他們點擊後退按鈕(< - ),它將把它們帶回MasterTableViewController並在TableView底部添加一個新單元。爲了在TableView頂部顯示新添加的單元格,我需要做什麼更改? 這裏是viewWillDisappear方法,當他們點擊後面(< - )按鈕時被調用。如何在表格視圖頂部添加新單元格?

-(void)viewWillDisappear:(BOOL)animated { 
    NSManagedObjectContext *context = [self managedObjectContext]; 

if (self.note) { 
    // Update existing Notes 
    [self.note setValue:self.titleField.text forKey:@"title"]; 
    [self.note setValue:self.textView.text forKey:@"text"]; 
} else { 
    // Create a new Notes 
    NSManagedObject *newNote = [NSEntityDescription insertNewObjectForEntityForName:@"Note" inManagedObjectContext:context]; 
    [newNote setValue:self.titleField.text forKey:@"title"]; 
    [newNote setValue:self.textView.text forKey:@"text"]; 
} 

NSError *error = nil; 
// Save the object to persistent store 
if (![context save:&error]) { 
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]); 
} 

[self dismissViewControllerAnimated:YES completion:nil]; 
} 

//觀點確實出現

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    // fetch the Note from persistent data store 
    NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; 
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Note"]; 
    self.notes = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; 

// [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:[self.notes count] inSection:0] animated:YES scrollPosition:UITableViewScrollPositionTop]; 

    [self.tableView reloadData]; 
} 

回答

3

看來你正在使用CoreData存儲新創建的對象。在主TableViewController上,在viewDidAppear中,您必須編寫代碼以將所有CoreData對象提取到數組中,然後重新加載表數據(通過調用[tableView reloadData])。這將使用最新的數據重新載入表格。

編輯:之上

  1. 添加一個新的屬性顯示最新的元素,你CoreDataEntity,像modifiedOnNSDate類型。
  2. 將此屬性設置爲[newNote setValue:[NSDate date] forKey:@"modifiedOn"];
  3. 然後你可以使用這個屬性作爲fetchRequest一個sortDescriptor基於modifiedOn最新的對象進行排序。
+0

謝謝@Nishant。我已經這麼做了。我通過添加viewDidAppear方法來修改問題。問題是,新的對象出現在底部,我需要它在頂部。 –

+0

更新我的答案。 – Nishant

相關問題