ビューコントローラ自体からカスタムの戻るボタンを設定できることはわかっています。たとえば、次のようになります。
- (void)setBackButton
{
UINavigationBar* navBar = self.navigationController.navigationBar;
UIButton* backButton = [navBar backButtonWith:[UIImage imageNamed:@"navigationBarBackButton.png"]
highlight:nil
leftCapWidth:14.0];
[backButton addTarget:self action:@selector(backButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:backButton] autorelease];
}
- (void)backButtonTapped:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
問題は、すべてのビューコントローラーに対してそれを行う必要があることです...
1つの解決策は、このコードをいくつかのBasicViewControllerに配置することであり、すべてのビューコントローラーがそれをサブクラス化します。
しかし、私の質問は、UINavigationCotroller自体をサブクラス化して、ナブバーの左ボタンをこのカスタムボタンに設定できるかどうかです。