0

我有两个 UIViewControllers:VC1 和 VC2。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 中的所有按钮都与 Collection 有关。在 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];
        }
    }
}

我知道按钮 Collection 仅在我移至下一个视图时才被初始化,而且我不明白您通过 throw 构造函数传递的意思...

谢谢

于 2012-09-08T11:15:59.370 回答