0

別のビューを表示する 1 つのビューで「カスタマイズ」の丸みを帯びた四角形ボタンを押すことができる iPhone プログラムを設計しています (組み込みのストーリーボードのモーダル接続を使用してビューを切り替えました)。最初のビューで背景をカスタマイズできます。カスタマイズ画面 (2 番目の画面) には、次のコードを使用する背景を選択するためのいくつかのボタンがあります。

ViewController.h:

@interface{
...
IBOutlet UIImageView *backgroundImageTest;

...

}

...

@property (strong,nonatomic) NSString *backgroundImageName;

@property (retain, nonatomic) IBOutlet UIImageView *backgroundImageTest;

...

ViewController.m:

- (IBAction)setJungleBackground:(id)sender {

backgroundImageName=@"jungle.png";

backgroundImageTest.image=[UIImage imageNamed:@"jungle.png"];
}

- (IBAction)setArcticBackground:(id)sender {

backgroundImageName=@"arctic.png";

backgroundImageTest.image=[UIImage imageNamed:@"arctic.png"];
}

考えられる背景ごとに。

また、ViewController.m で:

- (void)viewDidLoad
{

if(!notFirstTime){

    notFirstTime=YES;

    ...

    backgroundImageName=@"white.png";

}

...

backgroundImageTest.image=[UIImage imageNamed:backgroundImageName];

...

[super viewDidLoad];

}

ビューが切り替わるたびに、firstTime ブール値は NO にリセットされ、背景はデフォルトの背景 (@"white.png") のままになります。@"white.png" を @"jungle.png" に置き換えると、背景は機能しますが、他の背景に切り替えることはできません。

両方のビューに 1 つの ViewController を使用します。この1つの小さな問題を除いて、これまでのところうまく機能しているようです. 複数の ViewController を使用する必要がありますか? どのような状況でそうすべきかわかりません。

また、変数のプロパティ宣言でretainまたはstrongを使用する必要があるかどうかもわかりません。

私はiPhoneプログラミングに比較的慣れていないので、どんな提案でも大歓迎です。

ありがとう、アレックス

4

1 に答える 1

0

viewDidLoad は、View Controller がインスタンス化された後に呼び出されます。View Controller インスタンスを継続的に再作成しているようです。それを避けてから、viewDidAppear を使用してください。

于 2012-08-25T22:33:09.707 に答える