0

VC1 と VC2 の 2 つの UIViewController があります。VC1 には VC2 に移動するボタンがあり、VC2 には画像付きのボタンがいくつかあります。

VC1 には、いくつかの VC2 ボタン タイトルのリスト (sqlite db からクエリ) があります。VC1 のタイトルに合わせて VC2 のボタン イメージを変更する必要があります。つまり、ボタンを押して VC1 から VC2 に移動する場合、VC1 からの結果クエリにリストされているボタンに対してのみ画像を変更する必要があります。

4

1 に答える 1

1

VC2.hファイルで次の宣言を使用しています。

@interface VC2 : UIViewController 
{
    NSArray *buttons;
}
@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;
@end

VC2のすべてのボタンはコレクションに関連しています。VC1では、prepareforsegueを次のように使用しています。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender  
{
    if ([[segue identifier] isEqualToString:@"VC1Segue"] == TRUE) 
    {
        [self getPictureNamesFromDB];
        VC2 *vc = [segue destinationViewController];     
        UIImage *backgroundImage = [UIImage imageNamed:@"XXXXX.png"];
        for(UIButton *button in vc.buttons) {
            [button setBackgroundImage:backgroundImage forState:UIControlStateNormal];
        }
    }
}

ボタンコレクションが初期化されるのは、次のビューに移動したときだけであり、コンストラクターをthrowすることで何を意味するのか理解できませんでした...

ありがとうございました

于 2012-09-08T11:15:59.370 に答える