我如何从一个单独的类改变一个UIWindow的颜色?
-
19-09-2019 - |
题
我试图改变一个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];
其他提示
我觉得你既可以:
请在类包含窗口变量一些静态方法
或
传递窗口变量的新类。
不隶属于 StackOverflow