Ios 全屏显示后导航栏下的UIView

Ios 全屏显示后导航栏下的UIView,ios,swift,navigationbar,Ios,Swift,Navigationbar,我有一个带有导航栏的应用程序。 当我在应用程序中单击照片预览时,它会全屏显示照片。但是当我关闭全屏时,我的控制器的视图在导航栏下 我在StackOverflow上看到有必要添加这一行: self.edgesForExtendedLayout = [] 它可以工作,但会产生另一个bug。 所以我想知道是否还有其他选择 更新: 1-使导航栏不透明 self.navigationController.navigationBar.translucent = NO; 2-如果您使用的是Xib,请检查文

我有一个带有导航栏的应用程序。 当我在应用程序中单击照片预览时,它会全屏显示照片。但是当我关闭全屏时,我的控制器的视图在导航栏下

我在StackOverflow上看到有必要添加这一行:

self.edgesForExtendedLayout = []
它可以工作,但会产生另一个bug。 所以我想知道是否还有其他选择

更新:


1-使导航栏不透明

self.navigationController.navigationBar.translucent = NO;
2-如果您使用的是Xib,请检查文件检查器中的“安全区域布局指南”,如下所示。

3-如果您希望以编程方式执行此操作,则在添加到视图之后

self.yourView.translatesAutoresizingMaskIntoConstraints = false;
if (@available(iOS 11, *)) {
    UILayoutGuide * guide = self.view.safeAreaLayoutGuide;
    [self.yourView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor].active = YES;
    [self.yourView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor].active = YES;
    [self.yourView.topAnchor constraintEqualToAnchor:guide.topAnchor].active = YES;
    [self.yourView.bottomAnchor constraintEqualToAnchor:guide.bottomAnchor].active = YES;
}

它还产生了什么bug?无论如何,从iOS 7开始,这是iOS应用程序的默认布局:UIViewController的视图扩展到导航栏下,但您可以使用布局边缘和其他属性来控制它。如何设置有问题的视图约束?在发布照片预览之前,我会显示我手动制作的加载程序。通过添加这行代码,加载程序被移位。