0

私はiOS用のアプリを開発しています(まだ学習中です)。コンボボックスのように機能するボタンがあります。クリックすると、テーブルビューで新しいシーンが開き、クリックすると前のシーンに戻る要素が表示され、updatePartner:メソッドを呼び出します。そして、この時点までは問題なく動作しています。しかし、ボタンの画像を更新しようとすると、更新されません...

- (void) updatePartner:(NSInteger)index
{
NSLog(@"updatePartner: %i", index);

NSString *partnerImage = @"";
UIImage *image = @"";
NSString *text = @"";

switch (index)
{
    case 0:
        partnerImage = @"ic_pcmedic_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 1:
        partnerImage = @"ic_sapo_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 2:
        partnerImage = @"ic_telepac_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 3:
        partnerImage = @"ic_meo_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 4:
        partnerImage = @"ic_zon_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 5:
        partnerImage = @"ic_caboviaso_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 6:
        partnerImage = @"ic_artelecom_h45.png";
        image = [UIImage imageNamed:partnerImage];
        break;

    case 7:
        text = @"Ainda não sou cliente";
        break;

    default:
        break;
}

if (index <= 6)
    [[self partnerButton] setImage:image forState:UIControlStateNormal];
else
    [[self partnerButton] setTitle:text forState:UIControlStateNormal];

[[self partnerButton] setNeedsDisplay];
[[self view] setNeedsDisplay];
}

どんな助けでも大歓迎です!

更新:私はこれに取り組んできましたが、まだ理解していません.... updatePartner:の同じクラスのviewDidLoad:メソッド内でメソッドをテストしましたが、それは機能します。別のクラスから呼び出したときです。うまくいきません...助けてください!!! ありがとうございました!

よろしく、 リカルド・アメンドエイラ

4

2 に答える 2

0

あなたはこれを試すことができます...

if (index <= 6) {
    [[self partnerButton] setBackgroundImage:image forState:UIControlStateNormal];
} else {
    [[self partnerButton] setTitle:text forState:UIControlStateNormal];
}
于 2012-10-03T01:16:36.720 に答える
0

.h ファイルの画像用に IBOutlets を作成しましたか?

あなたはこれを作ることができます:

yourimagesetoutlet.image = [UIImage imageNamed: @"imagename.png"];

これを使ってみてください!! これはおそらくあなたの問題を解決するでしょう

のようなものを作る

switch (index)
{
    case 0:
        yourimagesetoutlet.image = [UIImage imageNamed: @"imagename.png"];

        break;
}
于 2012-10-03T00:12:55.640 に答える