我有一個tabbarcontroller應用程序的Tabview中的一個可用。現在,根據其他tabview中的某些操作,可用程序應該重新加載(刷新)後臺數據以更新數據。但是,我無法使用reloadData或beginupdates-endUpdates獲取它。從其他視圖控制器刷新視圖控制器
有人可以幫助這種情況。
在此先感謝。
我有一個tabbarcontroller應用程序的Tabview中的一個可用。現在,根據其他tabview中的某些操作,可用程序應該重新加載(刷新)後臺數據以更新數據。但是,我無法使用reloadData或beginupdates-endUpdates獲取它。從其他視圖控制器刷新視圖控制器
有人可以幫助這種情況。
在此先感謝。
我建議使用NSNotification以及viewWillAppear/viewDidAppear的組合。
當viewWillAppear中 - 重裝tableview中
- (void)viewWillAppear:(BOOL)animated
{
// Your other code here...
[self.tableview reloadData];
}
當視圖已經出現,並在背景中的數據被改變(你可以通過尋找數據的變化,因爲你最後一次顯示的數據提煉的話)一些其他的對象 - 問對象發送通知,並在你的tableview的視圖 - 控制寄存器爲notificaiton在viewWillAppear中&註銷在viewWillDisappear
的其他對象應該發送/後通知這樣的(剛過數據的變化) - 在您的視圖控制器
- (void)viewWillAppear:(BOOL)animated
{
// Your other code here...
[self.tableview reloadData];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNewDataReceivedNotification:) name:@"com.yourcompany.appname.XYZdataChangeNotification" object:nil];
}
通知處理程序 - 在你的viewController(其中有表
[[NSNotificationCenter defaultCenter] postNotificationName:@"com.yourcompany.appname.XYZdataChangeNotification" object:nil];
下面所有的代碼進行更新) -
註冊這樣的 -
- (void)handleNewDataReceivedNotification:(NSNotification *)notification
{
// Your other code here...
[self.tableview reloadData];
}
並取消這樣的註冊 -
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"com.yourcompany.appname.XYZdataChangeNotification" object:nil];
}
以上所有代碼都可以細化,但它應該給你一個想法。請隨時詢問是否有任何問題/疑慮。
由於您是本論壇的新成員,所以有一條建議 - 在您發佈您的問題後,您應該回訪並接受或投票上調或下調。反饋是重要的。 – Ashok