0

所以,我有这个问题,基本上视图控制器出现在导航控制器下方。这在 iOS 7 中经常发生,但是,在这种情况下,我无法使用 just 修复它self.edgesForExtendedLayout = UIRectEdgeNone,因为我不知道应该为哪个视图控制器设置它。

我怎么能解决这个问题?

谢谢。

在此处输入图像描述

4

2 回答 2

2

解决了。viewWillAppear在 SPLoginViewController.m 中创建一个方法,如下所示:

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

        UIViewController *internalLoginViewController = [[self viewControllers] objectAtIndex:0];
        if (internalLoginViewController && [internalLoginViewController respondsToSelector:@selector(edgesForExtendedLayout)])
        {
            [internalLoginViewController setEdgesForExtendedLayout:UIRectEdgeNone];
        }
}

显然,我们要定位的视图控制器是 UINavigationController 的视图控制器中索引为 0 的视图控制器(SPLoginViewController 是 UINavigationController)。

于 2013-12-17T10:22:31.573 回答
1

通过在 viewcontroller 属性中取消选中它 在此处输入图像描述

只需取消选中 Adjust Scroll View Insets 即可。

更新:如果您不使用 xib/storyboard,请使用它

self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
于 2013-12-16T14:52:47.120 回答