收錄文章::::::::::::::: iOS 13 適配要點總結php
在Xcode 11 建立的工程,運行設備選擇 iOS 13.0 如下的設備,運行應用時會出現黑屏現象。
緣由:windows
Xcode 11 默認是會建立經過 UIScene 管理多個 UIWindow 的應用,工程中除了 AppDelegate 外會多一個 SceneDelegate
AppDelegate和SceneDelegate這是iPadOS帶來的新的多窗口支持的結果,而且有效地將應用程序委託的工做分紅兩部分。
也就是說在咱們用多窗口開發iPadOS中,從iOS 13開始,您的應用表明應該:spa
設置應用程序期間所需的任何數據。
響應任何專一於應用的事件,例如與您共享的文件。
註冊外部服務,例如推送通知。
配置您的初始場景。
相比之下,在iOS 13中的新頂級對象是一個UIWindowScene,場景表明能夠處理應用程序用戶界面的一個實例。所以,若是用戶建立了兩個顯示您的應用程序的窗口,則您有兩個場景,均由同一個應用程序委託支持。
這些場景旨在彼此獨立工做。所以,您的應用程序再也不移動到後臺,而是單個場景執行 - 用戶能夠將一個移動到後臺,同時保持另外一個打開。版本控制
咱們能夠看下info.plist文件和工程項目文件的變化如圖:code
若是咱們不開發iPadOS多窗口APP,SceneDelegate窗口管理咱們能夠不須要直接刪掉就行了。對象
即要用iOS 13中新的SceneDelegate,又能夠在iOS 13一下的設備中完美運行。那就添加版本判斷.blog