2013-05-20 57 views
0

我有一個選項卡式應用程序,它捕獲數據,使用NSUserDefaults存儲數據,並在包含在UIViewController中的表中顯示讀數。我正在使用標籤視圖控制器和數據視圖之間的導航控制器。數據視圖然後連接到作爲子視圖控制器的歷史視圖控制器。歷史也有一張桌子。UINavigationController不傳輸數據

當您在歷史視圖中按下一行時,應用程序應該轉換回數據視圖並顯示歷史記錄的讀數。這是通過使數據成爲第一個NSUserDefault,然後在數據視圖中顯示來完成的。我正在使用的轉換是

[self.navigationController popToRootViewControllerAnimated:YES]; 

成功轉換回數據視圖,但它不會更改視圖中的數據。但是,當我刪除該代碼並按下該行然後再按回時,讀數會發生變化。如何在按下該行時更改讀數?

+0

你需要給你的控制器結構,你寫在第一段是混亂的一個更好的描述。另外,使用NSUserDefaults作爲在控制器之間傳輸數據的方式並不是它們設計的目的。你可能應該使用委派。 – rdelmar

+0

更新 - 我只注意到,從historyView加載dataView時,數據確實會改變,但只有在向下滾動表格並滾動回來之後 –

回答

0

所有我最後不得不做的是落實

[self.dataTable reloadData] 
0

嘗試使用委託/協議,

設置你的數據視圖不如授人以歷史觀點的協議。在調用pop之前,請調用委託操作。然後在動作中,只需刷新數據視圖中的視圖,然後調用poptoroot。

只是谷歌協議/委託的例子,應該有很多。