2013-12-22 63 views
0

我有一個上傳一些數據的解析背景塊。這發生在視圖控制器(讓我們稱之爲addDataViewController)被推到另一個視圖控制器(我的表視圖,讓我們打電話tableViewController)。當數據完成上傳時,我需要重新加載該tableView。 Ive得到了嵌在我的故事板導航控制器,香港專業教育學院試圖做從推送的視圖控制器重新加載tableview的一個視圖控制器

//In addDataViewController 
//when the data finishes uploading 
self.navigationController.viewControllers objectAtIndex:0]; 

,但由於某些原因的viewController堆棧是nil

然後我試着將tableViewController作爲addDataViewController的一個屬性,準備繼續使用tableViewController。我添加了一個tableViewController屬性的addDataViewController

//in prepare for segue of tableViewController 
dataViewController.tableViewController = self; 

然後我.h文件引用了對象tableView並呼籲reloadData,但似乎沒有什麼發生

[self.tableViewController.tableView reloadData]; 

我想肯定會很成功,但它didnt。有任何想法嗎?

回答

0

一種方法是使用通知。在tableViewController

[[NSNotificationCenter defaultCenter] postNotificationName:@"UpdateDone" object:nil]; 

你訂閱通知在viewDidLoad中:在你的addDataViewController你會觸發一個通知,在更新完成

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(doSomething) 
              name:@"UpdateDone" 
              object:nil]; 

然後:

-(void)doSomething { 
    [self.tableView reloadData]; 
} 
+0

好吧不好給這個鏡頭。 – Stonep123

+0

嗯通知正在我的dataViewController中設置,但選擇器沒有激發我的tableViewController。 – Stonep123

+0

實際上,儘管如此,仍然沒有。它像我的tableView只是因爲某種原因不會重新加載 – Stonep123

0

如果你正在導入視圖控制器,那麼你必須使用[self.addChildViewController:tableViewController.view];

希望這會有所幫助。

相關問題