0

我有 GridViewController。

@interface GridViewController : UIViewController <AQGridViewDelegate, AQGridViewDataSource, LoginViewControllerDelegate, IconDownloaderDelegate, UIScrollViewDelegate> {

NSArray *objects; //main data model
NSMutableDictionary *imageDownloadsInProgress;

}

@property (nonatomic, retain) IBOutlet AQGridView *gridView;

我需要调用我的gridview 的reloadData 方法。

当我调用[self.gridView reloadData];GridViewController.m (viewDidLoad) 时,

它重新加载没有问题。

但是我需要在 AppDelegate.m 中调用这个方法

所以我在 AppDelegate.m 中导入“GridViewController.h”

#import "AppDelegate.h"
#import "GridViewController.h"

并调用方法,

[gridViewController.gridView reloadData];

它不工作。

如何从我的 delegate.m 调用此方法到 GridViewController 的 gridView?

4

1 回答 1

2

尝试在您的 AppDelegate 中发布您的 GridViewController 将捕获的通知。在 AppDelegate.m 的某个地方,您需要调用您的网格重新加载代码:

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

在您的 GridViewController 的 viewDidLoad 中:

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

在您的 GridViewController 的 viewDidUnload 中:

[[NSNotificationCenter defaultCenter] removeObserver:self];

并且您需要向 GridViewController 添加方法:

- (void)reloadMyGrid {
     [self.gridView reloadData];
}
于 2012-04-24T06:35:16.260 回答