viewDidLoad не работает, когда ожидается - PullRequest
0 голосов
/ 25 октября 2011

В моем 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 Ответ

3 голосов
/ 25 октября 2011

Переместите этот код в viewWillAppear. viewDidLoad не вызывается каждый раз, когда представление представлено.

Эта ссылка дает хорошее объяснение.

UIViewController viewDidLoad против viewWillAppear: Каково правильное разделение труда?

...