请使用协议机制来满足您的要求
实现如下
在项目的AppDelegate.h文件中
@protocol ImageChangeDelegate <NSObject>
@optional
-(void)ChangeImage;
@end
@interface AppDelegate : UIResponder <UIApplicationDelegate>
{
}
@property (nonatomic,strong) id<ImageChangeDelegate> delegateImageChange;
在项目的AppDelegate.m文件中
@synthesize delegateImageChange;
现在在B 类的 .h 文件中
#import "AppDelegate.h"
@interface EventGuestListViewController : UIViewController
{
AppDelegate* appDelegate;
}
-(void)ChangeBackgroundOfClassA;
现在在B 类的 .m 文件中
- (void)viewDidLoad
{
[super viewDidLoad];
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
现在在改变BG的方法中
-(void)ChangeBackgroundOfClassA
{
[appDelegate.delegateImageChange ChangeImage];
}
现在在 A 类中实现协议以更改背景。
现在在A 类的 .h 文件中
#import "AppDelegate.h"
@interface EventGuestListViewController : UIViewController <ImageChangeDelegate>
{
IBOutlet UIImageView* imageBGClassA;
AppDelegate* appDelegate;
}
现在在A 类的 .m 文件中
- (void)viewDidLoad
{
[super viewDidLoad];
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.delegateImageChange = self; //Here you need to set the delegate to 'self' to call then Custom Protocol method
}
-(void)ChangeImage
{
imageBGClassA.image = [UIImage imageNamed:@"newImage.jpg"];
}
在 B 类中,一旦-(void)ChangeBackgroundOfClassA
调用在 A 类上实现的委托方法调用,背景图像就会发生变化
这是和我一起工作
可能对你有帮助!!!