2012-08-17 52 views
0
- (void)viewWillAppear:(BOOL)animated 
{ 


goals = [[NSArray alloc] init]; 
goals = [[self.operation valueForKeyPath:@"goal.goalNaam"] allObjects] ; 


[self.tableView reloadData]; 

我在viewwillappear中加載了我的tableview元素,就像你在上面的代碼中看到的一樣。當用戶添加一些東西到表中時(添加發生在另一個視圖中),它被添加到核心數據,並且當tableview再次出現時(在解除「add-an-element-view」之後)數組被加載,現在我想從表格中刪除一些東西。但問題是我們現在停留在同一個視圖(tableview)中,所以我的數組沒有被重新加載(因爲viewwillappear沒有被執行)。任何人有一個想法如何解決這個問題?在哪裏加載我的數組?

+0

他們做了刪除的代碼後,讓它調用[self.tableView reloadData],應該這樣做。 – CBredlow 2012-08-17 18:14:51

+0

不,我試過了,我認爲viewwillappear和reloaddata有區別。 Reloaddata用於numbersofrowsinsection和cellforrowatindex,而viewwillappear是在字面上當viewwillauar執行時執行的 – Fuzej 2012-08-17 18:17:44

+0

@Fuzej:在刪除代碼後調用reloaddata時發生了什麼? – 2012-08-17 18:27:41

回答

0

你可以調用「[self viewWillAppear:YES];」從核心數據刪除數據後,所以數據從同一視圖重新加載(Tableview)

+0

謝謝,這是爲我做的。或者這不是正確的方式? – Fuzej 2012-08-17 21:42:41

0

您將數據加載到cellForRowAtIndexPath。這被稱爲單元格進入視圖,並且只有視圖中的單元格(或幾乎在視圖中)被加載。

要強制重新加載某些東西,請使用reloadRowsAtIndexPaths或其他reload...方法之一。

+0

是的,但事情會從同一陣列重新加載,所以我認爲沒有什麼會改變。只有在調用viewwillappear時纔會重新載入數組。 – Fuzej 2012-08-17 21:39:58

+0

加載數組時加載數組。 – 2012-08-17 22:15:53

+0

沒錯,這讓我睜開了眼睛。無論我在哪裏加載它們,或者如果我將它們加載兩次。謝謝 – Fuzej 2012-08-18 07:12:43