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 未按预期运行的主要内容,如果未能解决你的问题,请参考以下文章

UI 滚动视图未按预期滚动

SnapKit 的自动布局未按预期响应

Viewdid加载和卸载

ViewDidLoad 未按正确顺序执行操作 - Firebase、Swift

PostAsJsonAsync 未按预期运行

C#“继续”未按预期运行