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];
    }
}

これで、MyViewController クラスの setAlight メソッドに kBblue が送信されます。(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

xib で作成している場合はUImageViews、 で初期化しないでくださいinit。フレームワークがそれらを作成します。.h ファイルでUIImageViews正しいものに接続されていることを確認してください。IBOutlets

于 2012-12-28T01:11:11.763 に答える
-1

xibsを使用していると言いますが、新しいaImageを割り当てています。新しい画像ビューを作成するのではなく、IBで作成した画像ビューにIBOutletを使用する必要があります。

于 2012-12-28T01:03:19.987 に答える