UIBarButtonItem外观无法在设备上运行

时间:2012-02-26 13:50:06

标签: objective-c ios5 xcode4.2

我遇到了以下问题:

我正在自定义我的应用的整个外观。现在我想更改导航栏中的后退按钮的背景。如果我在模拟器上运行我的代码,它可以工作。但是,如果我在设备上运行它,它不会改变任何东西。这怎么可能?

我正在iPhone 4S iOS 5.0.1上运行该应用程序

#import "test.h"
#import "InfoButton.h"

@implementation test

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad {
    if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
        //iOS 5 new UINavigationBar custom background
        UIImage *navi = [UIImage imageNamed:@"navbar.png"];
        [self.navigationController.navigationBar setBackgroundImage:navi forBarMetrics: UIBarMetricsDefault];
        UIImage *toolbarBackButtonBackgroundPortrait = [[UIImage imageNamed:@"nav_back.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 17, 0, 6)];

        [[UIBarButtonItem appearance] setBackButtonBackgroundImage:toolbarBackButtonBackgroundPortrait forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    } 
    [super viewDidLoad];
    UIButton * infoDarkButtonType = [[UIButton buttonWithType:UIButtonTypeInfoLight] retain];
    infoDarkButtonType.frame = CGRectMake(0.0, 0.0, 30.0, 25.0);
    infoDarkButtonType.backgroundColor = [UIColor clearColor];
    [infoDarkButtonType addTarget:self action:@selector(infoButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *infoButton = [[UIBarButtonItem alloc] initWithCustomView:infoDarkButtonType];
    self.navigationItem.rightBarButtonItem = infoButton;
    [infoDarkButtonType release];
    [infoButton release];
}

2 个答案:

答案 0 :(得分:1)

检查图像文件的拼写,尤其是大写字母。我注意到,当设备区分大小写时,模拟器将忽略大写并仍然加载文件。我自己已经做了几次。

答案 1 :(得分:1)

有同样的问题。我的图片名为“add.png”,并在代码中使用了[UIImage imageNamed:@“add.png”]。虽然这是在模拟器中工作,但它不在设备上。

我将文件重命名为“Add.png”(大写字母A),并在代码中更改为[UIImage imageNamed:@“Add.png”]。这解决了这个问题,并不适用于模拟器和设备 - 很奇怪:/