2012-10-11 64 views
8

我試圖得到一個沒有標題的後退按鈕,但我無法讓它工作。我真的是新客觀-c ...setBackButtonBackgroundImage無標題IOS5

UIImage *backButtonImage = [[UIImage imageNamed:@"back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 30, 50)]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage 
                forState:UIControlStateNormal 
               barMetrics:UIBarMetricsDefault]; 

有了這個代碼,我有我的後退按鈕,但也是上一頁的標題。

我發現了一些使用類UIViewController的工作示例,但在我的情況下,代碼位於appDelegate.m文件中。

任何想法如何讓它工作?

+0

要清楚,你只是試圖讓一個自定義的按鈕,看起來像背沒有標題的按鈕? – TheJer

回答

4

從我可以告訴你,你正確設置外觀代理。這裏的問題是爲後退按鈕設置一個新標題。

爲此,請創建一個包含您的行爲的自定義按鈕,並將其用作新的後退按鈕。 你推前或設置此彈出表示視圖控制器,比如在初始化

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"" 
                   style:UIBarButtonItemStyleBordered 
                   target:nil 
                   action:nil]; 

[self.navigationItem setBackBarButtonItem: newBackButton]; 
+0

@ user1736571如果我的回答適合您的需求,您能接受嗎?謝謝。 – WDUK

0
UIImage *image1 = [UIImage imageNamed:@"image.png"]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

上面代碼中使用了在後退按鈕設置bacground圖像。

+1

這並沒有解決這個按鈕應該沒有標題的事實。 – arclight

-4

剛加入這一行,你已經寫的代碼之後:

[[UIBarButtonItem appearance] setTitle:@""]; 

希望工程。

+0

這使應用程序崩潰......嚴重的答案只請... – arclight

+0

如果我提交答案,我也希望它能起作用。 – Morkrom

0

據我所知,你問如何改變後退按鈕的標題。

這裏是我怎麼總是做

[email protected]"My Title"; 

我想你可以不給任何標題設置爲空

[email protected]""; 

確保你推新之前調用這個函數視圖。

0

我還沒有嘗試過,但我認爲它應該工作....把這個到你viewdidLoad,我希望它是你在找什麼。

UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" 
style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem = backBarButtonItem; 
[backBarButtonItem release]; 
9

一個非常簡單的黑客工具,我適應它採用了iOS 5的外觀代理如下(不用說,代理的好處是全球變化的所有導航條):

[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0) 
                forBarMetrics:UIBarMetricsDefault]; 

此方法在iOS 5 SDK中可用,所以不用擔心。


編輯

爲了避免圖像拉伸,使用以下命令:

UIImage* image = [UIImage imageNamed:@"back"]; 
return [image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)]; 
+0

它仍然延伸按鈕圖像。 – TMilligan

+0

@TMilligan查看我的更新回答... – Mazyod

+0

很好玩的解決方案,謝謝! – ZaBlanc