Нет конкретного события, которое вы можете получить только за эту кнопку назад. Вместо этого вы можете использовать различные методы viewWillAppear:
, viewWillDisappear:
и т. Д. например:
//In View2:
- (void) viewWillDisappear:(BOOL) animated {
[super viewWillDisappear:animated];
if (!goingToSubscreen) {
//Do something important here
}
goingToSubscreen = NO;
}
//In View1:
- (void) viewWillAppear:(BOOL) animated {
[super viewWillAppear:animated];
if (wentToSubscreen) {
//Do something important here
}
wentToSubscreen = NO;
}
Обратите внимание, что логические значения GoToSubscreen и GoingToSubscreen должны быть заданы как именованные. Если вы выдвигаете другой вид на контроллер навигации в верхней части View2, вам следует установить значение GoToSubscreen в YES, чтобы оно не выполняло важные действия. И наоборот, вы должны установить GoToSubscreen в значение YES на View1 после нажатия View2, чтобы при его повторном появлении происходило что-то интересное, а не при появлении View1.
Edit:
Начиная с iOS 5.0, я считаю, есть встроенные свойства для этого. isBeingDismissed
устанавливается на YES
во время viewWillDisappear:
и viewDidDisappear:
в случае, если вы нажимаете кнопку возврата. Для справки, свойства, которые вы можете проверить:
isMovingFromParentViewController
isMovingToParentViewController
isBeingPresented
isBeingDismissed
Что касается изменения заголовка кнопки «Назад», свойство принадлежит элементу кнопки «Назад» предыдущего представления:
View1.navigationItem.backBarButtonItem.title = @"My New Title";
или
View1.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
Третий вариант - использовать пользовательскую кнопку для замены кнопки «назад». Это позволит вам указать свой собственный метод для вызова, поэтому вам не нужно использовать -viewWillDisappear:
, но при этом кнопка будет отображаться в виде прямоугольника, а не кнопки со стрелкой назад. Эта кнопка переходит на View2 вместо View1:
View2.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"New Title" style:UIBarButtonItemStyleDone target:self action:@selector(dismissView)] autorelease];