2011-08-07 42 views
0

基本上,我无法弄清楚如何改变背景图片。我已经搜索和搜索,似乎无法找到它。有人有主意吗?谢谢!如何在不同视图中的某个视图中设置多个按钮的背景图像?

更新

这里是我用要显示视图的代码: SettingsViewController * settingsView = [[SettingsViewController的alloc] initWithNibName:无束:无]; [self presentModalViewController:settingsView animated:YES];

如果有人需要任何帮助,我会尽我所能!谢谢!

+0

你会打字多一点,并解释不清楚,你想要改变bg图像? – Legolas

+0

为什么要改变视图?用户会做什么来启动这个? –

+0

是的,詹姆斯。 总之,我正在为应用程序设置一个设置页面(它自己的视图控制器),以更改颜色。用户必须选择他们的颜色偏好。 @Legolas – rreichel

回答

1

传递不同视图之间的消息可以通过所述方法直接调用(不是一个很好的架构解决方案,但也许不是一个小项目临界),或与如上述在答案描述的事件驱动模型来完成。 至于绑定对象集合和处理后续,我建议查看IBOutletCollection关键字,该关键字允许将多个对象从InterfaceBuilder绑定到类型为NSArray的属性。

财产申报将类似于以下内容:

@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons; 

的代码更改所有按钮的背景将类似于以下内容:

UIImage *backgroundImage = [UIImage imageNamed:@"background.png"]; 
for(UIButton *button in buttons) { 
    [button setBackgroundImage:backgroundImage forState:UIControlStateNormal]; 
} 
+0

所以我把属性部分放在非设置视图controller.h文件中,并更改settingsviewcontroller.m文件中的背景部分?那么我怎样才能把这些联系起来呢?谢谢! – rreichel

+0

我是新来的,以防万一你不知道 – rreichel

+0

你是对的。“@property”部分需要放入.h文件。通过按钮的代码需要放入.m文件。另外你需要一个字符串“@synthesize”按钮;在.m文件中为代码中的按钮属性自动生成getter和setter方法。在界面构建器中,您需要将“按钮”属性与您希望受上述代码影响的视图上的每个按钮连接起来。 –

0

您使用setBackgroundImage:forState:设置图像。

关于不同的视图部分,这取决于你如何编写你的代码。如果带有按钮的视图受不同视图的控制(通过创建实例并使用addSubview:),那么您可以直接使用instanceName.buttonName(只要将其声明为属性-thanks fichek)即可。

如果不手动添加视图,而不是通过IB,你可以控制在类中的其他按钮的图像点到IBAction为按钮。

如果没有这些选项的工作,你可以随时使用NSNotificationCenter。

+0

通过创建的UIButton的实例,并将其添加到视图,你没有得到访问像您认为使用instanceName.buttonName。为了以这种方式工作,buttonName也必须在instanceName上声明为@property。 –

+0

忘记了,谢谢! –

+0

我添加了将主视图的图像更改为子视图的视图。那么我应该使用NSNotificationCenter吗?如果是的话,我该如何使用它?谢谢! – rreichel

相关问题