我正在设计一个iPhone程序,它可以在一个视图中按下一个“定制”圆角按钮,这个视图显示一个不同的视图(我在内置的故事板上使用模式连接来切换视图),从它可以自定义第一个视图上的背景。自定义屏幕(第二个屏幕)有几个按钮可用于选择使用以下代码的背景:
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“,则背景可以工作,但不能切换到任何其他背景。
对于这两个视图,我使用一个ViewController。到目前为止,除了这个小问题之外,它似乎发挥了很大的作用。我应该使用多个ViewControllers吗?我不知道在何种情况下我应该这样做。
此外,我也不确定在变量的属性声明中是否应该使用retain或Also。
我对iPhone编程比较陌生,任何建议都会受到极大的赞赏。
谢谢,亚历克斯
发布于 2012-08-25 22:33:09
viewDidLoad是在视图控制器实例化之后调用的--似乎您正在不断地重新创建视图控制器实例。避免这种情况,然后使用viewDidAppear。
https://stackoverflow.com/questions/12126135
复制相似问题