2011-04-13 86 views
0

我有一個UINavigationController用戶可以返回/第四。當用戶返回時,我希望該UIView重新加載。 (我實際上使用的是OHGridView)。在我ViewWillDisappear,我做這樣的事情:如何重新加載UIView?

- (void)viewWillDisappear:(BOOL)animated { 
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReloadOHGridView" object:self]; 
} 

所以當他們回去,它會NSNotification發送到OHGridView刷新它的數據。它得到的調用,但它得到的錯誤Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DetailViewController reloadData]: unrecognized selector sent to instance 0x4b9e9f0

以下是我建立了我的NSNotificationCenter(在我DetailViewController):

- (void)viewDidLoad { 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ReloadGridNotification:) name:@"ReloadOHGridView" object:nil]; 
} 

- (void)ReloadGridNotification:(NSNotification *)notification{ 

    [database executeNonQuery:@"DELETE * FROM images"]; 
    [items removeAllObjects]; 

    [self reloadData]; 
} 

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
} 

現在,你可能會認爲這將更新,但我得到這個錯誤...請幫忙!

庫爾頓

回答

3

其實,我不認爲它會更新。 reloadData不是UIViewController的文檔化方法的名稱,而且您自己似乎也沒有實現過。我對OHGridView並不熟悉,但我也許是要發送reloadData消息的對象。

所以,你可以改變你從self建立到OHGridView實例觀察者,或者你可以在你叫reloadData,反過來發送適當的重載郵件到您的OHGridView視圖控制器實現的方法。

+0

謝謝!我創建了一個IBOulet,像這樣:'IBOutlet OHGridView * ohGridView;'並調用像這樣的刷新:'[ohGridView reloadData]'...只要告訴任何人都有同樣的問題! – iosfreak 2011-04-13 01:18:01

+0

甜!祝你好運。 – CharlieMezak 2011-04-13 01:27:53