Pergunta

Estou tentando alterar a cor de fundo de uma UIWindow quando uma ação é enviada ao MyController de classe. No entanto, a UIWindow reside na classe appdelegate, então não tenho acesso à variável para modificá -la usando

window.backgroundColor = [UIColor theColor];

no MyController. Aqui está o código para mycontroller.m:

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

E aqui está o código para appdelegate.h:

@interface AppDelegate : NSObject  {
    UIWindow *window;
}

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

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

@end

Tentei implementar um método ChanGecolortored ... na classe AppDelegate porque esse método tem acesso à variável window, mas eu não tinha como chamar isso do sliderChanged Método no MyController.

Como posso modificar a janela UiWindow * de outra classe?

Foi útil?

Solução

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

Se houver apenas 1 janela,

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

Outras dicas

Eu acho que você poderia:

Faça algum método estático na classe que contém a variável da janela

ou

Passe a variável da janela para a nova classe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top