2013-04-16 123 views
1

我有一個Xcode應用程序,創建一個tableview,然後用sqlite數據庫中的數據填充這個,這完美的作品,並允許我推動數據到一個新的視圖和刪除等,self.tableView reloadData不工作viewWillAppear

此tableview是加載在選項卡欄控制器上的第一個視圖。當我移動到另一個視圖上的同一個控制器,即創建一個運動員,在這個視圖中,我可以添加一個新的運動員到數據庫(這工作正常),但當我回到標籤欄控制器上的tableview時,該表是相同的,我必須註銷並重新登錄以查看錶中的更改,

我已經在viewWillAppear函數中嘗試過[self.tableView reloadData],但這沒有任何作用。我知道這個函數正在被調用,因爲我爲了安心而放置了一個NSLog。

我發現我認爲可能是這裏的解決方案,但我不能得到它的工作!

viewWillAppear, viewDidAppear not being called, not firing

我會後我下面的代碼和故事板作爲即時通訊的屏幕截圖相信這是我的設置,才造成了這個錯誤控制器的好辦法。任何幫助將非常感激,因爲我在危機階段,現在是:d

-(void)viewWillAppear:(BOOL)animated { 

//[super viewWillAppear:animated]; 

//[self.tabBarController viewWillAppear:animated]; 

[self.tableView reloadData]; 
NSLog(@"i just ran viewwillAppear"); 

} 


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 

athleteObject *athObj3 = [athletes objectAtIndex:indexPath.row]; 

athleteIdDelete = athObj3.athId; 

[self openDatabase]; 

[self deleteAthleteFromDataBase]; 

[athletes removeObjectAtIndex:indexPath.row]; 

[tableView reloadData]; 

} 

reloadData工作在我commitEditing功能(這將更新的tableview當我刪除通過刷卡的條目)

任何幫助將非常感謝,il發佈下面的屏幕截圖。

(無法弄清楚如何加載如果甚至有可能截圖)

回答

5

它看起來像運動員(一NSMutableArray的我假設)未在viewWillAppear中更新。您是否嘗試過在調用reloadData之前運行從數據庫填充數組的選擇器?

希望有幫助!

+0

乾杯,爲您提供幫助!我有一個名爲getDataIntoAthleteArray的函數,它從sqlite數據庫提取數據並將其存儲在數組中。我只需要在重新加載表格中的數據之前調用這個函數。你提到它後,它是非常有意義的,我只是不能看到tres的木材:D我會upvote,但我是這個網站上的noob:( –

+0

很高興它有幫助。 – Pablo

0

我假設您根據從數據庫返回的對象數來設置代碼中的行數/節數。

在此方法中設置斷點,並在每次編譯器中斷時獲取計數。您可能沒有從數據庫獲取任何對象,因此編譯器從不運行表視圖dataSource方法的其餘部分。

相關問題