将MyAppDelegate.m中的方法调用到ViewController

时间:2012-04-24 06:13:03

标签: iphone ios delegates reloaddata aqgridview

我有GridViewController。

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

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

}

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

我需要将reloadData方法调用到gridview。

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

它没有任何问题重新加载。

但我需要在AppDelegate.m中调用此方法

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

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

并调用方法,

[gridViewController.gridView reloadData];

它不起作用。

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

1 个答案:

答案 0 :(得分: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];
}