2014-05-15 153 views
0

所以我有一個視圖控制器,顯示一些數據量。當用戶點擊一個按鈕時,他們被帶到UITableViewController。然後我有一個「barbuttonitem」,它使用
[self dismissViewControllerAnimated:YES completion:nil]來返回前一個視圖控制器的數據。問題是,當我通過我在viewDidLoad中聲明的方法返回時,前一個控制器上的數據應該會更改。但是,數據保持不變。任何想法,爲什麼這可能是?刷新視圖控制器返回

例如:如果文本標籤上寫着「3點的通知」,以及按鈕上的用戶點擊去UITableViewController,然後單擊後退按鈕,它應該說0通知。

+0

viewDidLoad在控制器的生命週期中僅被調用一次 - 當您關閉模態控制器時,不會再次調用它。 – rdelmar

+0

那麼解決方案是什麼?每次我嘗試從barbuttonitem創建一個segue到視圖控制器時,它會顯示「無法識別的選擇器發送到實例」,但我不知道爲什麼。 – shreyashirday

+0

可能重複[在視圖控制器之間傳遞數據](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – herzbube

回答

0

你必須在viewWillAppear中實現你的邏輯。當你把一個newViewController的oldViewController還在內存中而不是在屏幕上,viewWillAppear中會被調用時返回(返回鍵)

-(void)viewWillAppear:(BOOL)animated{ 

    [self.tableView reloadData]; 
} 
0

您應該使用

- (void)viewDidAppear:(BOOL)animated 

而不是

- (void)viewDidLoad 

viewDidLoad被稱爲一次,當第一次加載視圖控制器時。每當您的視圖顯示在層次結構中時,調用viewDidAppear

+0

似乎沒有工作...該方法實際上是在 - (void)loadView如果有幫助 – shreyashirday