我试图改变一个UIWindow的背景色时的动作被发送到类myController的。然而,一个UIWindow驻留在AppDelegate类所以不能够获得可变使用来修改它

window.backgroundColor = [UIColor theColor];

在myController的。下面是MyController.m的代码:

@implementation MyController
- (IBAction)sliderChanged:(id)sender {
 //want to call some method to change the UIWindow background color
}
@end

和这里为AppDelegate.h的代码:

@interface AppDelegate : NSObject  {
    UIWindow *window;
}

- (void)changeColorToRed:(int)r Green:(int)g Blue:(int)b;

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end

我想实现一个方法changeColorToRed ......在AppDelegate类,因为这种方法可以访问变量window,但我没有办法来调用从该myController的方法sliderChanged

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

有帮助吗?

解决方案

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

如果有仅1窗口,

[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];

其他提示

我觉得你既可以:

请在类包含窗口变量一些静态方法

传递窗口变量的新类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top