UINavigationController不是全屏(swift)

chi*_*k10 1 ios swift3 xcode8

我创建了一个空项目(在swift中,xcode 8.3)并且不使用storyboard和一个导航控制器进入窗口.我不知道为什么导航控制器不是全屏

在AppDelegate中,didFinishLaunchingWithOptions方法:


self.window = UIWindow(frame: UIScreen.main.bounds)

let nav = UINavigationController()
nav.view.frame = UIScreen.main.bounds
nav.view.backgroundColor = UIColor.red
self.window?.rootViewController = nav
self.window?.makeKeyAndVisible()

结果是:

在此输入图像描述

mat*_*att 15

问题的原因是您的项目没有启动屏幕.添加LaunchScreen.storyboard并配置项目以使用它.它没有任何有意义的内容; 它的存在足以防止你所看到的信箱.

在此输入图像描述

在此输入图像描述

另外,作为辅助提示:

当您要将子视图插入到超级视图中时,您总是frame根据超视图的坐标系表达子视图.用你在这里做的其他坐标系来表达它是没有意义的.

所以,替换

nav.view.frame = UIScreen.main.bounds
Run Code Online (Sandbox Code Playgroud)

nav.view.frame = self.window!.bounds
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述