UIBarButtonItem未在iOS 4.0中显示

时间:2012-06-15 06:44:23

标签: iphone uibarbuttonitem

在iOS 5.0中一切都很好,但是当我在iOS 4.0中运行我的代码时,导航中的条形按钮的背景图像以及导航中的标题都没有显示。

以下是我使用的代码:

// check for version 5.0 support
navController  = [[[UINavigationController alloc] initWithRootViewController:self.viewController] autorelease];
UINavigationBar *navigationBar = [navController navigationBar];
if ([navController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
    UIImage *image = [UIImage imageNamed:@"Nav_Bar.png"];
    [navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
}

else
{
    UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: @"Nav_Bar.png"]];
    [self.navController.navigationBar addSubview:imageView];
}

然后在viewDidLoad

self.title = @"MyTitle";

self.leftBTN=  [UIButton buttonWithType:UIButtonTypeCustom];
[leftBTN setImage:[UIImage imageNamed:@"BTN1.png"] forState:UIControlStateNormal];
[leftBTN setTitle:@"Edit" forState:UIControlStateNormal];
[leftBTN addTarget:self action:@selector(editOption) forControlEvents:UIControlEventTouchUpInside];
[leftBTN setFrame:CGRectMake(0, 0, 60, 30)];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:leftBTN] autorelease];

请问任何人,请解释一下,为什么图像和标题没有显示在导航控制器中。 此外,如果我点击该帧,按钮的动作正常,只有问题是按钮没有显示。

1 个答案:

答案 0 :(得分:1)

iOS 4出现问题。当视图添加到导航栏时,子视图处理不当。它在iOS 5中得到了解决。

link

它有一个示例项目,它在iOS 4和iOS 5的导航栏中以背景图像运行。