2012-11-21 2 views
4

Je développe sur l'application iPhone. Dans cette application, j'ai 4 vues différentes. dans toutes les vues, je définis la couleur de fond. voir le code ci-dessousComment définir la variable globale avec la classe UIColor

self.view.backgroundColor = [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 

Je teste différentes couleurs pour la couleur de fond. quand je dois changer n'importe quelle couleur j'ai besoin de changer dans tous les contrôleurs de vue. au lieu de cela puis-je faire une variable globale pour cela? Je ne sais pas comment définir UIColor dans une variable globale. S'il vous plaît me suggérer quelques idées.

Répondre

9

Très simple.
En AppDelegate.h:

#define kGlobalColor [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f] 

En ViewControllers:

#import "AppDelegate.h" 

self.view.backgroundColor = kGlobalColor; 
+0

j'utilise réponse ci-dessus. mais cela me donne une erreur. ** Utilisation de l'identificateur non déclaré 'kGlobalColor' ** –

+0

Ne pas oublier d'importer le fichier constant dans le contrôleur de vue, dans ce cas AppDelegate.h – pbibergal

+0

je l'ai fait pareil .. –

0

créer un fichier constant.h de NSObject et de définir cette couleur globalement

#define globalColor [UIColor colorWithRed: (238.0f/255.0f) vert: (251.0f/255.0f) bleu: (255.0f/255.0f) alpha: 0.8f];

et quand vous voulez l'utiliser simplement importer le fichier constant 2 autres option sage est ci-dessous ..

Deuxième option

dans AppDelegate.h fichier juste propriété synthétisent une variable de UIColor comme ci-dessous. .

@interface AppDelegate : UIResponder <UIApplicationDelegate>{ 
    ///your Data 
    UIColor *globalColor; 
} 

@property (nonatomic,retain) UIColor *globalColor; 

et synthétiser dans le fichier .m comme ci-dessous ..

@syntesize globalColor; 

et méthode didFinishLaunchingWithOptions juste la couleur asssign à cette variable ..

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
     globalColor = [UIColor colorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 

} 

et quand vous voulez utiliser cette utilisation de la couleur comme ça ..

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; 
    self.view.backgroundColor = appDelegate.globalColor; 
+0

C'est possible mais pas le moyen optimal de le faire. – pbibergal

+0

ya mate donc je donne aussi une autre option pour cela ma première option est constante fichier mate .. :) –

0

mieux que d'utiliser une variable globale est d'étendre UIColor. Faire une catégorie avec un constructeur, qui fournit la couleur:

UIColor + mycolor.h:

@interface UIColor (mycolor) 
+ (UIColor*) myColor; 
@end 

UIColor + mycolor.m:

+ (UIColor*) systemBlue 
{ 
return [UIColorcolorWithRed:(238.0f/255.0f) green:(251.0f/255.0f) blue:(255.0f/255.0f) alpha:0.8f]; 
} 
Questions connexes