1

在 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];

任何人都可以请解释一下,为什么导航控制器中没有显示图像和标题。此外,如果我点击那个框架,按钮的动作是有效的,唯一的问题是按钮没有显示。

4

1 回答 1

1

这是 iOS 4 的问题。当视图添加到导航栏时,子视图没有正确处理。它在 iOS 5 中得到解决。

请参阅此链接

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

于 2012-06-15T07:03:06.383 回答