【问题标题】:how to change the UIBarButtonItem button design?如何更改 UIBarButtonItem 按钮设计?
【发布时间】:2013-02-10 07:03:41
【问题描述】:

我是 iPhone 应用程序的新手。

我所拥有的如下。

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

【问题讨论】:

    标签: objective-c ios6 uinavigationcontroller uibarbuttonitem uinavigationitem


    【解决方案1】:

    一种可能是通过此方法更改后退栏按钮:

    backButtonBackgroundImageForState: barMetrics:

    另一种可能是将“backBarButtonItem”替换为自定义视图。

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

    【讨论】:

    • 我不想使用图片。由于 xcode 默认有后退按钮,我想使用相同的。我不想为按钮创建图像并使用它...
    【解决方案2】:

    据我所知,显示标准后退按钮的方法只有一种。 你必须推 UINavigationItem in UINavigationBar。或者更好:需要有导航要弹出的项目


    重要提示:这不适用于 UINavigationController 的酒吧,所以使用你自己的吧!

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

    此代码将显示 “Something” 作为标题,在左侧,将显示返回按钮 “Go Back”。默认显示上一个项目的标题,但您可以自定义它:

    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.
    }
    

    或者只使用自定义背景图片...

    【讨论】:

    • 我继续使用方形按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多