Question

Je suis en train de changer la couleur de fond d'un UIWindow lorsqu'une action est envoyée à la MyController de classe. Cependant, le UIWindow réside dans la classe AppDelegate donc je n'ai pas accès à la variable de la modifier en utilisant

window.backgroundColor = [UIColor theColor];

MyController. Voici le code pour MyController.m:

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

Et voici le code pour AppDelegate.h:

@interface AppDelegate : NSObject  {
    UIWindow *window;
}

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

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

@end

J'ai essayé de mettre en œuvre une méthode changeColorToRed ... dans la classe AppDelegate parce que cette méthode a accès à la window variable mais je n'avais aucun moyen d'appeler à partir de la méthode sliderChanged dans MyController.

Comment puis-je modifier la UIWindow * fenêtre d'une autre classe?

Était-ce utile?

La solution

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

S'il n'y a que 1 fenêtre,

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

Autres conseils

Je pense que vous pouvez soit:

Faire une méthode statique dans la classe contenant la variable fenêtre

ou

Passez la variable de la fenêtre à la nouvelle classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top