0

我问了这个问题,但不正确。我创建了 NavigationVC 控制器:

#import <UIKit/UIKit.h>
@interface NavigationVC : UINavigationController

- (void)setTitleText:(NSString *)title calendar:(BOOL)calendar moveToLeft:(BOOL)left;
 //this method for create title of navigationitem that I then use in all ViewControllers

@end

在 NavigationVC.m 我有:

@implementation NavigationVC

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

- (void)awakeFromNib
{
   [self.navigationBar setBackgroundImage:[UIImage imageNamed:@"backGroundLayer.png"] forBarMetrics:UIBarMetricsDefault];
}

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

}

- (void)viewDidLoad
{
  [super viewDidLoad];

}

图片 backGoundLayer.png 的分辨率为 320x44,我的 backGround@2x.png 的分辨率为 640x88

我创建了从 UIViewController 继承的视图控制器 BaseVC,以及从 BaseVC 继承的其他视图控制器。

我在故事板中创建了我的笔尖

在此处输入图像描述

接下来是我的问题:

在此处输入图像描述

第一个背景图像出现在状态栏下,但您可以看到其他背景图像出现在状态栏的下方。我尝试在情节提要中将 statusBar 更改为黑色,但这对我没有帮助。我尝试写方法

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

 In viewDidLoad or viewWillAppear in NavigationVC, but it not helped too.

我有第二个问题。我在视图控制器中创建按钮,当它触摸时我按下下一个视图。我以编程方式将标题添加到第一个视图和第二个视图。当我触摸按钮时,我在第二个视图的标题中看到了(并且这个标题必须高于它,我认为背景出现时没有状态栏),然后第二个视图的标题消失,我看到空的导航栏。当我单击 backButton 并转到第一个视图时,我会在第二个视图的第一个视图 navigationBar 标题上看到。什么问题?

4

2 回答 2

1

状态栏后面没有图像,在 iOS 6 中状态将取代导航栏的颜色。

如果您更改 to 中的状态栏样式,info.plist它将Opaque black style保持黑色。

于 2013-03-13T08:11:09.033 回答
1

这是 iOS 6 的特性,默认状态栏采用导航栏的颜色。您可以通过更改目标摘要页面上的状态栏样式来更改此行为。

于 2013-03-13T08:11:19.543 回答