0

我正在设计一个 iPhone 程序,它可以在一个显示不同视图的视图中按下“自定义”圆角矩形按钮(我使用内置情节提要上的模式连接在视图之间切换),它是可以自定义第一个视图的背景。自定义屏幕(第二个屏幕)有几个按钮来选择使用以下代码的背景:

视图控制器.h:

@interface{
...
IBOutlet UIImageView *backgroundImageTest;

...

}

...

@property (strong,nonatomic) NSString *backgroundImageName;

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

...

视图控制器.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")。如果我用@"jungle.png" 替换@"white.png",背景可以工作,但不能切换到任何其他背景。

我对两个视图都使用一个 ViewController。到目前为止,它似乎工作得很好,除了这个小问题。我应该使用多个 ViewController 吗?我不确定在什么情况下我应该这样做。

另外,我不确定是否应该在变量的属性声明中使用保留或强。

我对 iPhone 编程比较陌生,非常感谢任何建议。

谢谢,亚历克斯

4

1 回答 1

0

viewDidLoad 在你的视图控制器被实例化后被调用——你似乎在不断地重新创建你的视图控制器实例。避免这种情况,然后使用 viewDidAppear。

于 2012-08-25T22:33:09.707 回答