2011-10-04 37 views
2

當我使用dismissModalViewControllerAnimated時,我無法在我的表格視圖中重新載入數據,但是如果我使用pushViewController,它的工作原理是完美的。如何在我們使用dismissModalViewControllerAnimated重新加載數據以返回到前一個視圖?

我打電話reloadDataviewWillAppear

這是怎麼了切換視圖:

- (IBAction)addAction:(id)sender 
{ 
    NSLog(@"Add Button Pressd"); 
    AddNewDrinks *newView = [[AddNewDrinks alloc] initWithNibName:@"AddNewDrinks" bundle:nil]; 
    self.addNewDrink = newView; 
    [self presentModalViewController:addNewDrink animated:YES]; 
    [newView release]; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.drinkTableView reloadData]; 
    [super viewWillAppear:animated]; 
} 

這是我用來找回以前的觀點。

- (IBAction)save:(id)sender 
{ 
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
    path = [path stringByAppendingPathComponent:@"drinks.plist"]; 
    NSString *drinkName = self.name.text; 
    NSString *drinkIngredients = self.ingredients.text; 
    NSString *drinkDirection = self.directions.text; 
    NSArray *values = [[NSArray alloc] initWithObjects:drinkDirection, drinkIngredients, drinkName, nil]; 
    NSArray *keys = [[NSArray alloc] initWithObjects:DIRECTIONS_KEY, INGREDIENTS_KEY, NAME_KEY, nil]; 
    if(drinkName.length != 0) 
    { 
     NSDictionary *dict = [[NSDictionary alloc] initWithObjects:values forKeys:keys]; 
     [self.drinkArray addObject:dict]; 
     [dict release]; 
    } 
    [self.drinkArray writeToFile:path atomically:YES];  
    [self dismissModalViewControllerAnimated:YES]; 
} 

不幸的是我的表格視圖數據沒有重新加載。

回答

2

從外觀上看,您正在將編輯後的數組寫入文件,但在重新加載表之前不會讀取它。

在viewWillAppear中,嘗試將新文件讀入內存,然後重新加載表。

+0

現在正在工作。謝謝 :) – Varundroid

1

viewWillAppear在解散模態視圖控制器後調用? 你的表是一個有效的對象嗎?

+0

yeah viewWillAppear在我解散模型視圖控制器後立即接到呼叫。我再次檢查了我的表格視圖,看起來好像一切都在正確的位置。 – Varundroid

+0

謝謝你試圖幫助我。我真的很感激。:) – Varundroid

1

您是否正在從文件中讀取您在tableview中呈現的數據?

+0

我什麼都沒回來。只是添加一些東西到我的數據源,在我的情況是一個plist和重新加載數據,因爲數據源已被改變。 – Varundroid

+0

謝謝你試圖幫助我。我真的很感激。:) – Varundroid

相關問題