0

私はGridViewControllerを持っています。

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

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

}

@property (nonatomic, retain) IBOutlet AQGridView *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

GridViewController がキャッチする通知を AppDelegate に投稿してみてください。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 に答える