これを達成する方法はいくつもあります。ここに私の考えがあります。
スタイルと呼ばれるNSObjectを作成します。変更が必要なすべての情報が保持されます。たとえば、あなたが4つのビューコントローラ、それぞれ異なる背景色、およびそれらの2の異なる画像ごとに異なるタイトルを必要とするのであれば、それは次のようになります。
その後
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface Style : NSObject
@property (nonatomic, retain) NSString* first_title;
@property (nonatomic, retain) NSString* second_title;
@property (nonatomic, retain) NSString* third_title;
@property (nonatomic, retain) NSString* fourth_title;
@property (nonatomic) UIColor* first_background_color;
@property (nonatomic) UIColor* second_background_color;
@property (nonatomic) UIColor* third_background_color;
@property (nonatomic) UIColor* fourth_background_color;
@property (nonatomic) UIImage* first_image;
@property (nonatomic) UIImage* second_image;
@end
、あなたのスタイルに.Mは、あなたがメモリにこの情報を保存するためのメソッドを持つことができ、このように:
// encode a card to memory
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:first_title forKey:@"first_title"];
// etc etc etc
}
// decode a card from memory
- (id)initWithCoder:(NSCoder *)coder {
self = [self init];
self.first_title = [coder decodeObjectForKey:@"first_title"];
// etc etc etc
return self;
}
次に、あなたは(あなたが好きな場所アプリのデリゲートにまたは基本的には)スタイルのNSArrayの*を作成することができます - のそれぞれに1つずつ関係会社。私はこれを行う場所をいくつでも考えることができます - あなたはdidFinishLaunchingWithOptions
のアプリケーションデリゲートでそれを行うことができます。または、サーバーにいくつかのTSVファイルを保存し、viewDidLoadでそれらをフェッチし、それらをこの配列に解析することもできます。あなたが望むものなら、なんでも!各企業の1 - - あなたはいくつかの素晴らしいスタイルの配列を持っていたらとにかく、あなたはフェッチとすると、このようなアプリのメモリからそれを保存することができます:
-(void)writeArrayWithCustomObjToUserDefaults:(NSString*)keyName withArray:(NSMutableArray*)myArray {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myArray];
[defaults setObject:data forKey:keyName];
[defaults synchronize];
}
とメモリから戻って配列を取得するには:
if ([[NSUserDefaults standardUserDefaults] objectForKey:@"Styles"] != nil) {
NSData* existingData = [[NSUserDefaults standardUserDefaults] objectForKey:@"knives"];
NSArray* styles = [NSKeyedUnarchiver unarchiveObjectWithData:existingData];
}
次に、さまざまなVCで、スタイルのNSArrayをフェッチし、ターゲットに対応する名前のものを探し、その変数にアクセスしてVCを変更します。
More information on getting target name here.
More information on that memory stuff here.