Xcode11 新建項目的問題

當我們更新了xcode到11的版本的時候,我們再新建項目就會發(fā)現,出現的文件與之前的不同,會多出兩個文件SceneDelegate.h和SceneDelegate.m.

SceneDelegate 是ipados用來做多窗口支持的? 這時候如果你還像之前的一樣,在appdelegate里寫self.window的方法的話,運行程序,直接崩潰了,因為新版本的xcode的appdelegate里面已經沒有了window這個屬性

?在iOS13之前,appdelegate會處理app生命周期和UI生命周期,但是iOS13之后,appdelegate就不再處理UI生命周期了,只負責處理生命周期和新的scene? session生命周期,而UI 的生命周期就有scene delegate處理了,所以我們寫的self.window時就要放到scenedelegate里

?適配iOS13包含和以上的設備要在sceneDelegate內寫:

?UIWindowScene * windowScene = (UIWindowScene *)scene;

?self.window = [[UIWindow alloc]initWithWindowScene:windowScene];

?self.window.frame = windowScene.coordinateSpace.bounds;

?ViewController * control = [[ViewController alloc]init];

?self.window.rootViewController = control;

?[self.window makeKeyAndVisible];

?同時適配iOS13以下設備以及iOS13以上的設備,需要把相關的sceneDelegate都刪掉:

1.刪除info文件里關于scenedelegate的配置信息:刪除Application Scene Manifest

?2.appdelegate.h文件增加window屬性

?3.在APPdelegate.m里刪除新加的scene方法 UISceneSession lifecycle 內面的方法

?4.刪除scenedelegate的2個文件

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容