2011-02-08 33 views
0

我現在有一個UINavigationBar的在我的應用程序爲背景自定義圖像。 我已經使用類別技術實現了這一點。事情是這樣的:iphone - UINavigationBar的自定義圖像變化作爲新的視圖控制器被彈出堆棧

@implementation UINavigationBar (CustomImage) 
- (void)drawRect:(CGRect)rect { 
UIImage *image = [UIImage imageNamed: @"NavigationBar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 

我想這也是可能的方法混寫,但是從一切我讀過這是不是一個偉大的方法,因爲UIKit的變化會打破我的代碼。 我遇到的問題是當新視圖控制器從堆棧中彈出時,更改背景圖像。我似乎能夠修改圖像時,他們被推動,但當我彈出視圖控制器我無法改變圖像回來。有沒有一種方法可以偵聽用戶點擊導航控制器上的後退按鈕,並在此時觸發圖像更改? 也很好奇蘋果公司是否會阻止這種做法。

回答

1

您可以嘗試使用此方法以編程方式設置背景圖像。 Link to Apple Docs

willShowViewController:animated 
+0

謝謝!會嘗試。 – noahd 2011-02-08 19:39:32

0

你可以嘗試這樣

創建一個全局常量變量。

@implementation UINavigationBar (CustomImage) 
- (void)drawRect:(CGRect)rect { 
UIImage *image =nil; 
if(CONSTANT==1) 
    image= [UIImage imageNamed: @"NavigationBar.png"]; 
else 
    image= [UIImage imageNamed: @"newbar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 

在UIViewController中

-(void)viewWillAppear:(BOOL)animated{ 
    CONSTANT=2;//CONSTANT=1 
    [self.navigationController.navigationbar setNeedsDisplay]; 
} 
相關問題