无法设置UIImageView

时间:2012-12-27 20:16:20

标签: ios uiimageview

我有一个解析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中设置图像。为什么呢?

修改

  • 我正在使用xib,并为imageView分配了默认图像。
  • 我的所有连接都在xib中连接,它们看起来都正确。
  • 我传递的字符串中没有空格。
  • 我可以判断图像尚未设置,因为在正确设置时对我来说非常明显。

2 个答案:

答案 0 :(得分:1)

如果您在xib中创建UImageViews,则不会在init中初始化它们。该框架将为您创建它们。只需确保您的UIImageViews与您的.h文件中的IBOutlets相关联。

答案 1 :(得分:-1)

你说你正在使用xibs,但你要初始化一个新的aImage - 你应该将IBOutlet用于你在IB中制作的图像视图,而不是创建一个新的.I / p>