iOS 6和iOS 7 UINavigationBar间距

iOS 6和iOS 7 UINavigationBar间距,ios,uinavigationbar,xib,ios7,spacing,Ios,Uinavigationbar,Xib,Ios7,Spacing,我们正在着手对我们的应用程序进行重大的重写,以支持iOS 6和iOS 7的用户界面。我们的应用程序的初始屏幕上有一个模态视图控制器,其中出现了一个UINavigationBar,用户可以通过谷歌(OAuth)登录。我使用Xcode 5创建这两个版本(使用“文件检查器”选项卡),出于可维护性的原因,我使用XIB支持故事板-版本1使用了故事板,随着我们的应用程序的规模和范围不断扩大,一段时间后很难导航 在Xcode 5中: iOS 6: iOS 7: 而且,当我运行应用程序时,iOS 6版本看起

我们正在着手对我们的应用程序进行重大的重写,以支持iOS 6和iOS 7的用户界面。我们的应用程序的初始屏幕上有一个模态视图控制器,其中出现了一个
UINavigationBar
,用户可以通过谷歌(OAuth)登录。我使用Xcode 5创建这两个版本(使用“文件检查器”选项卡),出于可维护性的原因,我使用XIB支持故事板-版本1使用了故事板,随着我们的应用程序的规模和范围不断扩大,一段时间后很难导航

在Xcode 5中:

iOS 6:

iOS 7:

而且,当我运行应用程序时,iOS 6版本看起来是正确的(因为状态栏仍然是不同的,并且时钟和导航栏之间的间隔是正确的):

但请注意,在iOS 7版本中,由于不再有单独的“状态栏”,因此我的
UINavigatonBar
标题文本与时钟太接近:

到目前为止,大家是如何协调这一点的?我注意到,Facebook和Twitter等应用程序已经升级,并使用了一个“扩展”(不确定这是否是正确的术语)导航栏,以弥补视图栏和状态栏之间缺乏区分的缺陷:

他们是如何做到这一点的?我在苹果的iOS 7用户界面过渡指南中看不到任何具体的解决方法,因此我们非常感谢您的帮助,我相信很多其他人也会遇到这个问题,希望这对他们也有帮助。谢谢

快速安全套:

使用UINavigationController!这会解决你的问题。 如果不能,请使用自动布局

UINavigationBar *aNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
aNavigationBar.barStyle = UIBarStyleBlackOpaque;
self.flipsideNavigationBar = aNavigationBar;
[aNavigationBar release];

UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(toggleView)];
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Taschenlampe"];
navigationItem.rightBarButtonItem = buttonItem;
[flipsideNavigationBar pushNavigationItem:navigationItem animated:NO];
[navigationItem release];
[buttonItem release];


- (IBAction) toggleView {
}