像许多其他人一样,我想在 UINavigationController 中使用“后退”按钮时执行一个操作。我知道一些替代方法,例如添加我自己的按钮并尝试欺骗外观,使用 viewWillDisappear 并在所有会导致视图消失的非返回操作上设置标签等。
但我想尝试的是继承 UINavigationController 并在 popViewControllerAnimated 中注入一些东西:
但我无法让一个简单的测试用例工作。这是我尝试过的...
我创建了一个新类 CustomNavigationController,它继承自 UINavigationController。在这里,我更新了 popViewControllerAnimated:
。H:
#import <UIKit/UIKit.h>
@interface CustomNavigationController : UINavigationController
@end
米:
#import "CustomNavigationController.h"
@interface CustomNavigationController ()
@end
@implementation CustomNavigationController
- (UIViewController *)popViewControllerAnimated:(BOOL)animated{
NSLog(@"pop!");
return [super popViewControllerAnimated:animated];
}
@end
在界面生成器中,我更改了导航控制器的类:
我错过了什么?每当我在此导航控制器中弹出任何视图时,我都希望记录“弹出”。