viewDidLoad 未按预期运行
Posted
技术标签:
【中文标题】viewDidLoad 未按预期运行【英文标题】:viewDidLoad not running when expected 【发布时间】:2011-10-25 14:49:49 【问题描述】:我的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
的结果不会改变,图像也不会改变。为什么会这样?
【问题讨论】:
【参考方案1】:将此代码移至 viewWillAppear。每次呈现视图时都不会调用 viewDidLoad。
这个链接提供了很好的解释。
UIViewController viewDidLoad vs. viewWillAppear: What is the proper division of labor?
【讨论】:
以上是关于viewDidLoad 未按预期运行的主要内容,如果未能解决你的问题,请参考以下文章