1

我有一个类可以解析 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 中连接,它们看起来都正确。
  • 我传递的字符串中没有空格。
  • 我可以说图像尚未设置,因为正确设置后对我来说非常明显。
4

2 回答 2

1

如果您UImageViews在 xib 中创建,请不要在init. 该框架将为您创建它们。只需确保您在 .h 文件UIImageViews中正确连接。IBOutlets

于 2012-12-28T01:11:11.763 回答
-1

你说你正在使用 xibs,但你正在分配一个新的 aImage——你应该使用 IBOutlet 到你在 IB 中创建的图像视图,而不是创建一个新的。

于 2012-12-28T01:03:19.987 回答