Pregunta

Estoy tratando de cambiar el color de fondo de un UIWindow cuando una acción se envía al myController clase. Sin embargo, el UIWindow reside en la clase AppDelegate así que no tengo acceso a la variable de modificarla mediante

window.backgroundColor = [UIColor theColor];

en myController. Aquí está el código para MyController.m:

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

Y aquí está el 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

He intentado poner en práctica un método changeColorToRed ... en la clase AppDelegate porque ese método tiene acceso a la window variables, pero no tenía forma de llamar a que a partir del método sliderChanged en myController.

¿Cómo puedo modificar el UIWindow * ventana de otra clase?

¿Fue útil?

Solución

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

Si sólo hay 1 ventana,

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

Otros consejos

Creo que se podría ya sea:

Hacer algún método estático en la clase que contiene la variable de ventana

o

Pase la variable ventana para la nueva clase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top