解决方案 »

  1.   

    你是否设置了automaticallyAdjustsScrollViewInsets = NO?
      

  2.   

    如果是通过界面编辑器创建navigationController,可以通过Simulated Metrics,将Top Bar设置为Opaque Navigation Bar即可。
      

  3.   

    如果是通过界面编辑器创建navigationController,可以通过Simulated Metrics,将Top Bar设置为Opaque Navigation Bar即可。 
      

  4.   

    你设置了automaticallyAdjustsScrollViewInsets的话,CGPoint{0,0}就是从顶部开始
      

  5.   

    问题我已经找到了- (void)myInit是我的子页面初始化方法,我没在下面代码里加上。不过我加上后又出现了问题。加上这句后table列表获取数据:出错,网络错误。
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            //[self myInit];
        }
        return self;
    }
      

  6.   

    最后终于解决了,我就把解决遮挡的代码放在了initWithNibName方法里就OK了
            if([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0)
            {
                self.edgesForExtendedLayout = UIRectEdgeNone;
                self.automaticallyAdjustsScrollViewInsets = NO;
            }
      

  7.   

    这段代码最终应该要作用于所有的控制器,而不是某个控制器,这样的话只会让指定的这个控制器起作用。作用于所有的控制器,最简单的方法是继承,创建一个父控制器,将代码加入其中, 其它控制器继承该控制器就可以继承该方法。另外一种就是使用category 来给uiviewcontroller添加扩展方法,这种方法藕合度更低