我今天将iPhone更新为iOS 7,并重新编译我的应用程序,并且.xib文件中的所有视图和设备都被移动,并且其上半部分被导航栏隐藏.在我的viewController我设置self.edgesForExtendedLayout = UIRectEdgeNone;而在iOS 7上,现在一切看起来不错,但是当我使用Deployment Target 6.0编译我的项目并在iOS 6设备上测试时,导航栏再次隐藏所有视图.如何让它们在iOS 7和iOS 6上同时观看?我现在不想破坏iOS 6的支持.
解决方法
 所以这是我做的.这不是最干净的代码,你需要确保你不会有滚动视图的奇怪的结果. 
  
 
        基本上我把所有的子视图都移动到导航栏的高度(45).对于我的滚动浏览/桌面浏览,在我的应用程序中总是进入屏幕的底部,我将其高度降低了45,这样您仍然可以达到目的.这是一些应用程序的解决方案,但您应该确保所有的滚动和表格视图都是这样缩小的.
因为它不是递归的,所以您不必担心在scrollviews或任何类似的表视图.
- (void)viewDidLoad
{
    [super viewDidLoad];
    if (SYstem_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
    } else {
        [self moveAllSubviewsDown];
    }
}
- (void) moveAllSubviewsDown{
    float barHeight = 45.0;
    for (UIView *view in self.view.subviews) {
        if ([view isKindOfClass:[UIScrollView class]]) {
            view.frame = CGRectMake(view.frame.origin.x,view.frame.origin.y + barHeight,view.frame.size.width,view.frame.size.height - barHeight);
        } else {
            view.frame = CGRectMake(view.frame.origin.x,view.frame.size.height);
        }
    }
}