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

StackOverflow https://stackoverflow.com/questions/2034918

Вопрос

Я пытаюсь изменить цвет фона 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

Я попытался реализовать метод изменен ... в классе AppDelegate, потому что этот метод имеет доступ к переменной window, но у меня не было возможности назвать это из sliderChanged Метод в MyController.

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

Это было полезно?

Решение

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

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

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

Другие советы

Я думаю, ты мог бы либо:

Сделайте некоторый статический метод в классе, содержащий переменную окна

или же

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top