Как я могу изменить цвет UIWindow от отдельного класса?

Я пытаюсь изменить цвет фона 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, но у меня не было способа назвать это от sliderChanged метод в MyController.

Как я могу изменить UIWindow * окно от другого класса?

5
задан jkeesh 9 January 2010 в 20:55
поделиться

2 ответа

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

Если есть только 1 окно,

[UIApplication sharedApplication].keyWindow.backgroundColor = [UIColor myColor];
13
ответ дан 18 December 2019 в 14:46
поделиться

Я думаю, что вы можете либо:

сделать какой-то статический метод в классе, содержащий Переменная окна

или

пропустите переменную окна в новый класс.

0
ответ дан 18 December 2019 в 14:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: