2011-07-12 102 views
1

有可能在工具欄中插入一個工具按鈕,其形狀類似於導航欄中使用的後退按鈕? 這裏是我的意思是:提前ios後退按鈕在酒吧

sample

的感謝!

+0

我不知道我明白你在努力實現什麼。你是否試圖將一個工具欄和一個導航欄功能地組合到一個單欄中? – MiguelB

+0

沒有抱歉,在我看來,我只有一個工具欄,但我需要創建一個像背面的按鈕,但只有使用導航欄時,箭頭形狀的背面纔是活動的,但我只有一個工具欄 – ghiboz

+0

好的,所以你需要在工具欄中有一個後退按鈕,只有當你將某個控制器放入導航棧時纔會變爲活動狀態。是嗎? – MiguelB

回答

2

你不能這樣做,至少不是後退按鈕的形狀,箭頭結尾在左側。 backBarButtonItem只是UINavigationItem的一個屬性。

您可以使用一個矩形按鈕在工具欄上回去(雖然我不認爲蘋果是喜歡...你應該閱讀的iOS人機界面指南),

OR你可以在屏幕上的其他地方添加自定義後退按鈕。例如,如果您的工具欄位於底部,您可以在屏幕的左上角添加自定義後退按鈕以保持整潔。這樣,您將只保存後退按鈕的導航欄的屏幕空間。

+0

謝謝,我怎樣才能在屏幕上添加自定義後退按鈕? – ghiboz

+0

使用UIButton類,可能是... ...將其框架設置爲您需要的任何位置,設置其backgroundImage(使用後退箭頭的形狀)等。 – MiguelB

1

typeonerror在github上的代碼包含你所需要的;它實際上是自定義視圖控制器上的後退按鈕,但你可以用它到工具欄,而不是上創建一個後退按鈕:

https://github.com/typeoneerror/BBCustomBackButtonViewController

特別,類似於下面的代碼(這實際上是從計算器來了,Customization of UINavigationBar and the back button):

+ (UIBarButtonItem *)styledBackBarButtonItemWithTarget:(id)target selector:(SEL)selector; 
{ 
    UIImage *image = [UIImage imageNamed:@"button_back"]; 
    image = [image stretchableImageWithLeftCapWidth:20.0f topCapHeight:20.0f]; 

    NSString *title = NSLocalizedString(@"Back", nil); 
    UIFont *font = [UIFont boldSystemFontOfSize:12.0f]; 

    UIButton *button = [UIButton styledButtonWithBackgroundImage:image font:font title:title target:target selector:selector]; 
    button.titleLabel.textColor = [UIColor blackColor]; 

    CGSize textSize = [title sizeWithFont:font]; 
    CGFloat margin = (button.frame.size.height - textSize.height)/2; 
    CGFloat marginRight = 7.0f; 
    CGFloat marginLeft = button.frame.size.width - textSize.width - marginRight; 
    [button setTitleEdgeInsets:UIEdgeInsetsMake(margin, marginLeft, margin, marginRight)]; 
    [button setTitleColor:[UIColor colorWithRed:53.0f/255.0f green:77.0f/255.0f blue:99.0f/255.0f alpha:1.0f] forState:UIControlStateNormal]; 

    return [[[UIBarButtonItem alloc] initWithCustomView:button] autorelease]; 
}