Iphone 带有自定义后退按钮的UINavigationController子类

Iphone 带有自定义后退按钮的UINavigationController子类,iphone,objective-c,ios,uinavigationcontroller,uinavigationbar,Iphone,Objective C,Ios,Uinavigationcontroller,Uinavigationbar,我知道我可以从视图控制器本身设置自定义后退按钮,例如: - (void)setBackButton { UINavigationBar* navBar = self.navigationController.navigationBar; UIButton* backButton = [navBar backButtonWith:[UIImage imageNamed:@"navigationBarBackButton.png"]

我知道我可以从视图控制器本身设置自定义后退按钮,例如:

- (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];
}  
问题是我需要为所有视图控制器执行此操作…
一种解决方案是将此代码放入一些基本的视图控制器中,所有的视图控制器都将对其进行子类化


但我的问题是,我是否可以将UINavigationCotroller本身子类化,并将其nab bar left按钮设置为此自定义按钮?否。最好有一个自定义UIViewController来处理此行为。

正确的方法是使用

它提供了有关
UIBarButtonItem
的方法,例如

-(void)setBackButtonBackgroundImage:(UIImage*)backgroundImage for state:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics


-(void)setback按钮background垂直位置调整:(CGFloat)barMetrics的调整:(UIBarMetrics)barMetrics

是的,为什么您仍然支持更少的东西?在