以编程方式创建 UINavigationController
Create a UINavigationController programmatically
我创建了一个非常简单的 UINavigationController 应用程序。不使用 IB,只创建两个文件 AppDelegate.swift 和 ViewController.swift。但是结果看起来很奇怪。请查看附图
我使用 XCode 10.2.1。模拟器的屏幕无法完全填满,iphone8模拟器的状态栏放错了地方。
AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.main.bounds)
let homeVC = ViewController(nibName: nil, bundle: nil)
homeVC.title = "HOME"
let nav = UINavigationController(rootViewController: homeVC)
self.window?.rootViewController = nav
self.window?.makeKeyAndVisible()
return true
}
ViewController.swift:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.yellow
// Do any additional setup after loading the view.
}
我怎么了?
这看起来像是 iPhone X 和其他应用未优化的情况。你是如何做启动屏幕的?由于我没有看到 LaunchScreen.storyboard,我假设您使用的是图片资源。这是不受欢迎的,因为一旦创建了新的屏幕尺寸,您就需要更新您的应用程序。
TL:DR 将 LaunchScreen.storybooard
用于 Launch Screen File
VS Launch Images Source
已编辑:创建一个 LaunchScreen.storyboard 并将其设置为启动屏幕文件
我创建了一个非常简单的 UINavigationController 应用程序。不使用 IB,只创建两个文件 AppDelegate.swift 和 ViewController.swift。但是结果看起来很奇怪。请查看附图
我使用 XCode 10.2.1。模拟器的屏幕无法完全填满,iphone8模拟器的状态栏放错了地方。
AppDelegate.swift:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.window = UIWindow(frame: UIScreen.main.bounds)
let homeVC = ViewController(nibName: nil, bundle: nil)
homeVC.title = "HOME"
let nav = UINavigationController(rootViewController: homeVC)
self.window?.rootViewController = nav
self.window?.makeKeyAndVisible()
return true
}
ViewController.swift:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.yellow
// Do any additional setup after loading the view.
}
我怎么了?
这看起来像是 iPhone X 和其他应用未优化的情况。你是如何做启动屏幕的?由于我没有看到 LaunchScreen.storyboard,我假设您使用的是图片资源。这是不受欢迎的,因为一旦创建了新的屏幕尺寸,您就需要更新您的应用程序。
TL:DR 将 LaunchScreen.storybooard
用于 Launch Screen File
VS Launch Images Source
已编辑:创建一个 LaunchScreen.storyboard 并将其设置为启动屏幕文件