Как и многие другие, я хотел бы выполнить действие, когда кнопка «назад» используется в UINavigationController. Я знаю о некоторых альтернативных подходах к этому, таких как добавление моей собственной кнопки и попытка подменить внешний вид, используя viewWillDisappear и установив теги для всех действий без обратной связи, которые приведут к исчезновению вида и т. Д.Подкласс UINavigationController - настройка Pop
Но тот, который я хотел бы попробовать, - это подклассификация UINavigationController и инъекция чего-то в popViewControllerAnimated:
Но я не могу получить простой тестовый пример для работы. Вот что я пробовал ...
Я создал новый класс CustomNavigationController, который наследуется от UINavigationController. Здесь, я обновил popViewControllerAnimated:
.h:
#import <UIKit/UIKit.h>
@interface CustomNavigationController : UINavigationController
@end
.m:
#import "CustomNavigationController.h"
@interface CustomNavigationController()
@end
@implementation CustomNavigationController
- (UIViewController *)popViewControllerAnimated:(BOOL)animated{
NSLog(@"pop!");
return [super popViewControllerAnimated:animated];
}
@end
В интерфейсе строитель, я изменил класс навигации контроллера:
Что мне не хватает? Я ожидаю, что «поп» будет регистрироваться всякий раз, когда я появляюсь в этом контроллере.
Спасибо - я просто подтвердил то же самое в тестовом проекте. Я попытаюсь отследить его в другом месте –