他の多くの人と同じように、「戻る」ボタンが UINavigationController で使用されたときにアクションを実行したいと思います。独自のボタンを追加して外観を偽装しようとしたり、viewWillDisappear を使用したり、ビューを非表示にするすべての非バック アクションにタグを設定したりするなど、これに対するいくつかの代替アプローチを認識しています。
しかし、私が試してみたいのは、UINavigationController をサブクラス化し、popViewControllerAnimated に何かを注入することです。
しかし、単純なテストケースを機能させることができません。これが私が試したものです...
UINavigationController を継承する新しいクラス CustomNavigationController を作成しました。ここで、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
インターフェイス ビルダーで、ナビゲーション コントローラーのクラスを変更しました。
私は何が欠けていますか?このナビゲーション コントローラー内でビューをポップするたびに、「ポップ」がログに記録されることを期待しています。