我在viewDidLoad
中有以下代码来更改图片:
- (void)viewDidLoad
{
[super viewDidLoad];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"colour"] == nil) {
[defaults setObject:@"Red" forKey:@"colour"];
[defaults setInteger:0 forKey:@"colourIndex"];
[defaults synchronize];
}
[background setImage:[UIImage imageNamed:[defaults objectForKey:@"colour"]]];
NSLog(@"%@", [defaults objectForKey:@"colour"]);
// Logs "Blue"
}
当我在iPhone模拟器中打开我的侧视图然后返回原始视图时,NSLog
的结果不会改变,图像也不会改变。为什么会这样?
答案 0 :(得分:3)
将此代码移至viewWillAppear。每次显示视图时都不会调用viewDidLoad。
此链接提供了一个很好的解释。
UIViewController viewDidLoad vs. viewWillAppear: What is the proper division of labor?