1

我是iPhone应用程序的新手。如何更改UIBarButtonItem按钮设计?

我有如下。

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] 
          initWithTitle:@"Flip"            
          style:UIBarButtonItemStyleBordered 
          target:self 
          action:@selector(flipView)]; 

self.navigationItem.leftBarButtonItem = flipButton; 
[flipButton release]; 

但是,问题是按钮设计。这只是方形按钮。

如何使该按钮与后退按钮相同?

任何想法/建议,将不胜感激。


我与

self.navigationItem.leftBarButtonItem.title = @"Back"; 
self.navigationController.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(goBackToSAMA:)] autorelease]; 

但其工作的工作努力。不工作意味着,goBackToSAMA未被调用,并且按钮文本也未到达Back

回答

0

据我所知,如何显示标准后退按钮只有一种方法。 您必须在UINavigationBar处推送UINavigationItem。或者更好:需要导航项目被弹出


重要:这将无法正常工作与UINavigationController的酒吧不错,所以用你自己的!

UINavigationItem *firstItem = [[UINavigationItem alloc] initWithTitle:@"Go Back"]; 
UINavigationItem *secondItem = [[UINavigationItem alloc] initWithTitle:@"Something"]; 

navigationBar.items = @[ firstItem, secondItem ]; 

该代码会显示“东西”作为标题,并到左边,会出现后退按钮说“返回”。默认情况下,它显示了以前项目的标题,但你可以自定义它:

firstItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Another Title" 
                   style:UIBarButtonItemStyleBordered 
                   target:nil 
                  selector:nil]; 

注意,目标和选择是nil。你不能这样定制后退按钮的动作,因为它很特别。你将需要实现协议UINavigationBarDelegate这个方法:

– (BOOL)navigationBar:(UINavigationBar *)bar shouldPopItem:(UINavigationItem *)item { 
    [self doYourActionHere]; 
    return NO; // Returning YES, would trigger pop animation. 
} 

或者只是使用自定义的背景图片...
system back button background

+0

我继续使用方形按钮。 – 2013-02-10 09:00:21

1

一个方法可行可能是通过这种方法来改变回栏按钮:

backButtonBackgroundImageForState: barMetrics:

另一种可能性可能是一个自定义视图来代替“backBarButtonItem”。

如果您想滚动您自己的自定义栏按钮项目,您正在寻找的选项是“UIBarButtonItem”方法“initWithCustomView”,并且这是您可以放入您选择的设计的地方。

+0

我不想使用的图像。由于xcode默认有后退按钮,我想用相同的。我不想为按钮创建图像并使用它... – 2013-02-10 08:14:57