Какая функция будет вызываться при смене контроллера представления на другой контроллер представления?

У меня есть два класса контроллера представления в моем делегате приложения. Я могу перейти от одного контроллера представления к следующему контроллеру представления, выполнив метод -pushViewController:animated класса navigationController и вернувшись к предыдущему контроллеру представления, вызвав метод -popViewController:animated. Теперь моя проблема в том, что я хочу сохранить какое-то значение в настройках, используя NSUserDefaults, когда я вернусь к первому контроллеру представления, и я не знаю, куда я должен поместить:

[[NSUserDefaults standardUserDefaults] setObject:@"value" forKey:@"key"];

person domlao    schedule 04.09.2009    source источник


Ответы (2)


Во втором контроллере представления добавьте:

- (void) viewWillDisappear:(BOOL)animated {
  [[NSUserDefaults standardUserDefaults] setObject:@"value" forKey:@"key"];
  [super viewWillDisappear:animated];
}

Когда второе представление исчезнет и появится первое представление, стандартные значения по умолчанию будут обновлены.

person Alex Reynolds    schedule 04.09.2009

Все они действительны в зависимости от того, когда именно вы хотите сохранить информацию:

-(void) viewWillAppear:(BOOL)animated;

-(void) viewDidAppear:(BOOL)animated;

-(void) viewWillDisappear:(BOOL)animated;
person Andrew Johnson    schedule 04.09.2009