我有一个解析Web服务调用结果的类。基于该结果,它调用另一个类中的方法,该方法应该更改UIImageView中的图像。但它不会设置图像,我不知道为什么。
头等相关部分。 “服务器”值确实回来了“rb”。
#import "GetBBYprod.h"
#import "MyViewController.h"
static NSString *kAblue = @"A_blue.png";
static NSString *kBblue = @"B_blue.png";
static NSString *kCblue = @"C_blue.png";
@implementation GetBBYprod
@synthesize vc;
-(id)init {
if (self = [super init]) {
vc = [[MyViewController alloc] init];
}
return self;
}
-(void)connectionDidFinishLoading:(NSURLConnection *)conn {
NSString *bbyProdString = [[NSString alloc] initWithData:bbyProdData encoding:NSUTF8StringEncoding];
NSString *server = [bbyProdString substringToIndex:2];
if ([server isEqualToString:@"rb"]) {
[vc setAlight:kBblue];
}
}
这样就可以将kBblue发送到MyViewController类中的方法setAlight。 (kBblue的值是“B_blue.png”。
所以在我的MyViewController类中,setAlight方法:
-(id)init {
if (self = [super init]) {
aImage = [[UIImageView alloc] init];
bImage = [[UIImageView alloc] init];
cImage = [[UIImageView alloc] init];
}
return self;
}
-(void)setAlight:(NSString *)aValue {
NSLog(@"image name: %@", aValue);
[aImage setImage:[UIImage imageNamed:aValue]];
}
这将成功记录“图像名称:B_blue.png”,因此我知道正在传递数据并且正在调用该方法。但它不会在aImage UIImageView中设置图像。为什么呢?
修改
答案 0 :(得分:1)
如果您在xib中创建UImageViews
,则不会在init
中初始化它们。该框架将为您创建它们。只需确保您的UIImageViews
与您的.h文件中的IBOutlets
相关联。
答案 1 :(得分:-1)
你说你正在使用xibs,但你要初始化一个新的aImage - 你应该将IBOutlet用于你在IB中制作的图像视图,而不是创建一个新的.I / p>