0

我有一个 UINavigationController 用户可以返回/第四次。当用户返回时,我希望 UIView 重新加载。(我实际上使用的是OHGridView)。在我的ViewWillDisappear,我做这样的事情:

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

所以当他们返回时,它会向 OHGridView 发送一个 NSNotification 来刷新它的数据。它被调用,但它得到一个错误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];
}

现在你会认为它会更新,但我得到了那个错误......请帮忙!

库尔顿

4

1 回答 1

3

实际上,我认为它不会更新。reloadData不是 UIViewController 的记录方法的名称,而且您似乎没有自己实现一个。我不熟悉 OHGridView,但我可能就是您要向其发送 reloadData 消息的对象。

因此,您可以将您设置的观察者更改self为您的 OHGridView 实例,或者您可以在视图控制器中实现一个名为reloadData该方法的方法,该方法反过来将适当的重新加载消息发送到您的 OHGridView。

于 2011-04-13T01:08:25.913 回答