【问题标题】:clear background image in navigation bar清除导航栏中的背景图像
【发布时间】:2012-11-13 10:22:45
【问题描述】:

我的视图控制器的 viewWillAppear 中有以下代码。

- (void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];

    UIImage *image = [UIImage imageNamed:@"navbar.png"];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    [self.navigationController.navigationBar addSubview:imageView];
}

如何在添加新导航栏图像之前清除已经存在的导航栏背景图像,如上面的代码所示?

另外,如何以最有效的方式为每个不同的控制器设置不同的导航栏背景图像?谢谢!

【问题讨论】:

标签: objective-c ios cocoa-touch ios5 ios4


【解决方案1】:

在您的 viewWillAppear 方法中,使用以下调用设置导航栏的背景图片。

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];

如果您的应用也支持横向,您还需要为横向导航栏设置不同高度的背景图片:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar_landscape.png"] forBarMetrics:UIBarMetricsLandscapePhone];

【讨论】:

  • 我有一个问题 - 当人们点击返回时,我们如何防止返回按钮被动画化?现在,单击后退按钮会滑动到中心。我们怎样才能阻止它?
  • 在viewWillDisappear方法中,设置返回按钮为nil:self.navigationItem.leftBarButtonItem = nil
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多