在UIBarButtonItem iOS 7中插入图像

时间:2014-04-03 18:35:06

标签: ios objective-c uinavigationbar uinavigationitem ios7.1

我遇到问题,我需要在UIBarButtonItem中插入图像,但它不会显示带图像的按钮。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //.........

    UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:menuVC];

    UINavigationBar *barraNav = navVC.navigationBar;
    [barraNav setBackgroundImage:[UIImage imageNamed:@"navigationBar.png"] forBarMetrics:UIBarMetricsDefault];

    // HERE
    UINavigationItem *navItem = [[UINavigationItem alloc] init];
    navItem = navVC.navigationItem;
    UIBarButtonItem *botonIzq = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"bNavBarIzq.png"] style:UIBarButtonItemStylePlain target:self action:nil];
    [navItem setLeftBarButtonItem:botonIzq];

    self.window.rootViewController = navVC;

    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    return YES;
}

3 个答案:

答案 0 :(得分:0)

这应该有效:

UIImage *image = [[UIImage imageNamed:@"bNavBarIzq.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *botonIzq = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(YOUR_METHOD:)];

答案 1 :(得分:0)

导航项不是导航控制器的功能,而是其子项之一。它是menuVC,其导航项目应在此处设置。

此外,这应该是menuVC的工作,即代码应该在其类中 - 这不是应用程序委托的工作(虽然没有严格的错误,它'只是一个适当的分工和#34;事物类型。

答案 2 :(得分:0)

您使用的是错误的导航项目。 你应该使用menuVC one而不是navVC。

试试吧:

UIBarButtonItem *botonIzq = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"bNavBarIzq.png"] style:UIBarButtonItemStylePlain target:self action:nil];
menuVC.navigationItem.leftBarButtonItem = botonIzq;

另外,请检查此代码:

// HERE
UINavigationItem *navItem = [[UINavigationItem alloc] init];
navItem = navVC.navigationItem;

您已创建navItem,然后覆盖它。你应该重构它。