楼主应该是代码写的UI吧?从iOs7开始,{0,0}为屏幕最左上角点,包括了状态栏,所以你可以预定义一个变量:
#define UI_DEFAULT_ORIGIN_Y (IS_IOS_7 ? 64.0f : 0.0f)

解决方案 »

  1.   

    不是啊,那你导航条怎么办?
    你的视图是从下弹出的,不是PUSH进来的。导航条顶到最上面去了,怎么改他得位置?
      

  2.   

     嗯,我也才发现这个问题,你是直接设置navigationBar的backgroundimage是吧?现在我试了改成:
    UIImageView *imageView = [[[UIImageView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.width, 45.0f)] autorelease];
        imageView.image = [UIImage imageNamed:@"top_bg"];
        [self.navigationController.navigationBar addSubview:imageView];
    但感觉这样做并不好,比如这样会盖着title,正在找更好的办法
      

  3.   

    主要是原来的程序与ios7版本兼容的问题,你可以尝试加上下面的代码#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
        {
            self.edgesForExtendedLayout = UIRectEdgeNone;
            self.extendedLayoutIncludesOpaqueBars = NO;
            self.modalPresentationCapturesStatusBarAppearance = NO;
            self.automaticallyAdjustsScrollViewInsets = YES;
        }
    #endif
      

  4.   


    #define IsIos7 ([[[UIDevice currentDevice] systemVersion] doubleValue]>=7.0)  -(void)shipeiForIos7
    {
        if (IsIos7) {
            self.edgesForExtendedLayout = UIRectEdgeNone;
        }
    }
    在.plist中设置这个属性Status bar style为Transparent black style(alpha of 0.5);应该就没问题了,lz可以试试看行不行。
      

  5.   

    遇到相同的问题了,忙了几天才发现问题,产生的原因有点奇葩,有可能跟楼主的原因不一样,不过还是希望能帮到跟我有一样问题的朋友:
    问题是修改代码出现的,手贱在以前自定义继承UITabBarController的类中添加了
    -(NSUInteger) supportedInterfaceOrientations{
        return UIInterfaceOrientationPortrait;
    }
    (这个方法在每个页面基类中也有,不知道会不会有影响)
    方法,注释之后就没有问题了,使用presentViewController跳转拍照和自定义的页面都没有问题
    原因暂时没有不知道,如果有哪位朋友知道希望能告诉我下
      

  6.   

    楼主的navigationController如果是系统的好办些,设置navigationBar.translucent = NO,ios7以后默认YES