我有两个 UIViewControllers:VC1 和 VC2。VC1 有一个带我到 VC2 的按钮,而 VC2 有几个带图像的按钮。
在 VC1 中,我有一些 VC2 按钮标题的列表(从 sqlite db 查询)。我需要更改与 VC1 中的标题匹配的 VC2 按钮图像。换句话说,当按下按钮从 VC1 移动到 VC2 时,我只需要为 VC1 的结果查询中列出的按钮更改图像。
我有两个 UIViewControllers:VC1 和 VC2。VC1 有一个带我到 VC2 的按钮,而 VC2 有几个带图像的按钮。
在 VC1 中,我有一些 VC2 按钮标题的列表(从 sqlite db 查询)。我需要更改与 VC1 中的标题匹配的 VC2 按钮图像。换句话说,当按下按钮从 VC1 移动到 VC2 时,我只需要为 VC1 的结果查询中列出的按钮更改图像。
我在 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 构造函数传递的意思...
谢谢