5

我试图在将操作发送到 MyController 类时更改 UIWindow 的背景颜色。但是 UIWindow 驻留在 AppDelegate 类中,因此我无权访问该变量来修改它

window.backgroundColor = [UIColor theColor];

在我的控制器中。这是 MyController.m 的代码:

@implementation 我的控制器
- (IBAction)sliderChanged:(id)sender {
 //想调用一些方法来改变UIWindow的背景颜色
}
@结尾

这是 AppDelegate.h 的代码:

@interface AppDelegate : NSObject {
    UIWindow *窗口;
}

- (void)changeColorToRed:(int)r 绿色:(int)g 蓝色:(int)b;

@property (nonatomic, 保留) IBOutlet UIWindow *window;

@结尾

我试图在 AppDelegate 类中实现一个方法 changeColorToRed...,因为该方法可以访问变量,但我无法从MyController 中window的方法调用它。sliderChanged

如何从另一个类修改 UIWindow * 窗口?

4

2 回答 2

13
[UIApplication sharedApplication].delegate.window.backgroundColor = [UIColor myColor];

如果只有 1 个窗口,

[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
于 2010-01-09T20:57:56.607 回答
0

我认为您可以:

在包含窗口变量的类中创建一些静态方法

或者

将 window 变量传递给新类。

于 2010-01-09T20:58:16.527 回答