2010-12-23 132 views
1

(編輯:增加了更多的在底部的信息)自定義按鈕UINavigationBar的不顯示

首先,我有過類似的帖子看,並試圖自己的答案,但沒有運氣:(我有一個自定義導航條(只自定義背景圖片),我嘗試添加自定義後退按鈕。

// custom back button. 
UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
UIImage *backImg = [UIImage imageNamed:@"btn_back.png"]; 
backBtn.titleLabel.text = @""; 
[backBtn setBackgroundImage:backImg forState:UIControlStateNormal]; 
[backBtn addTarget:self action:@selector(backPressed) forControlEvents:UIControlEventTouchUpInside]; 
backBtn.frame = CGRectMake(0, 0, 54, 33); 

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; 
self.navigationItem.leftBarButtonItem.title = @""; 

上面的代碼是爲了添加按鈕,但它並沒有在導航欄上顯示,我仍然可以點擊這裏它的意思出現的區域它確實使我回到以前的視圖?!刪除上面的代碼顯示標準後退按鈕。

有什麼建議嗎?提前致謝!

(編輯)

嗨再次傢伙,

我嘗試了所有你的建議,仍然沒有運氣:(也許我應該早一點,我用下面的代碼有一個自定義導航欄圖像提及。這可能會影響我的自定義後退按鈕圖像的顯示。

此代碼根據我設置的參數再次顯示自定義圖像。謝謝進一步的幫助!

// custom navigation bar image 
@implementation UINavigationController (CustomImage) 

// set the background image for the nav bar. 
- (void) setCustomNavBar:(NSInteger)screen { 

UIImage *navBarImg; 
switch (screen) { 
    case kCreateHuntScreenIdentifier: 
     navBarImg = [UIImage imageNamed:@"title_create-hunt.png"]; 
     break; 

    case kCreateLocationsScreenIdentifier: 
     navBarImg = [UIImage imageNamed:@"title_create-location.png"]; 
     break; 

    case kListNewLocationsScreenIdentifier: 
     navBarImg = [UIImage imageNamed:@"title_choose-location.png"]; 
     break; 

    default: 
     break; 
} 

UIImageView *imgView = [[UIImageView alloc] initWithImage:navBarImg]; 
[[[self.navigationBar subviews] objectAtIndex:0] removeFromSuperview]; 
[self.navigationBar addSubview:imgView]; 
[imgView release]; 
} 

@end 
+0

確定,如果我不顯示導航欄自定義後退按鈕做的自定義圖像顯示!將嘗試看看我是否能同時展示,如果我弄清楚發生了什麼,我會在這裏發佈更新! – bennythemink 2010-12-23 12:16:21

回答

2

感謝您的諮詢!我終於找到了一個解決方案:D

很快我需要能夠將導航欄的背景圖像從視圖更改爲查看當我推送或彈出堆棧時查看。

使用最流行的方法,比如重寫UINavigationBar的drawRect只能部分工作,它可以在根視圖上工作,然後將圖像推送到導航欄的堆棧前面,而不管是否發送它到後面,等

我發現這裏的解決方案:http://sebastiancelis.com/2009/12/21/adding-background-image-uinavigationbar/

取讀,它的偉大工程:)

0

嘗試,

self.navigationItem.hidesBackButton = YES;

befor寫.leftBarButtonItem。希望它的代碼又有助於

+0

謝謝Swastik,但沒有運氣,要麼:( – bennythemink 2010-12-23 06:14:22

+0

是你的圖像名稱是否正確?請檢查 – Swastik 2010-12-23 06:22:06

+0

嘿Swastik,是我的圖像名稱是正確的 – bennythemink 2010-12-23 12:10:50

1
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom]; 
[btn setBackgroundImage:[UIImage imageNamed:@"imgname.png"] forState:UIControlStateNormal]; 
[btn addTarget:self action:@selector(method_name:) forControlEvents:UIControlEventTouchUpInside]; 
btn.frame=CGRectMake(3, 2, 53, 30); 
UIBarButtonItem *btnBack=[[UIBarButtonItem alloc] initWithCustomView:btn]; 
self.navigationItem.leftBarButtonItem=btnBack; 
[btnBack release]; 
[btn release]; 
相關問題