2013-10-24 268 views
-1

我有一個tabbarcontroller應用程序的Tabview中的一個可用。現在,根據其他tabview中的某些操作,可用程序應該重新加載(刷新)後臺數據以更新數據。但是,我無法使用reloadData或beginupdates-endUpdates獲取它。從其他視圖控制器刷新視圖控制器

有人可以幫助這種情況。

在此先感謝。

+0

由於您是本論壇的新成員,所以有一條建議 - 在您發佈您的問題後,您應該回訪並接受或投票上調或下調。反饋是重要的。 – Ashok

回答

0

我建議使用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]; 

} 

以上所有代碼都可以細化,但它應該給你一個想法。請隨時詢問是否有任何問題/疑慮。