1

我知道我可以從視圖控制器本身,像自定義設置後退按鈕:的UINavigationController子類的自定義後退按鈕

- (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]; 
} 

的問題是,我需要做的是爲我所有的視圖控制器...
一個解決方案是將此代碼放在一些BasicViewController中,並且我所有的視圖控制器都將其子類化。

但我的問題是我可以繼承UINavigationCotroller本身,並將其設置爲nab bar左按鈕到此自定義按鈕?

回答

2

正確的方式做,這是使用UIAppearance

它提供了UIBarButtonItem

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

- (void)setBackButtonBackgroundVerticalPositionAdjustment:(CGFloat)adjustment forBarMetrics:(UIBarMetrics)barMetrics

+0

這是僅適用於iOS 5號的方法呢? – Eyal

+0

是的,你爲什麼還支持更少的東西? –

+0

是iOS 4仍然支持... – Eyal

1

不是。最好是有一個自定義的UIViewController來處理這種行爲。

相關問題