Xcode11新建項(xiàng)目的一些問題

1. 創(chuàng)建項(xiàng)目發(fā)現(xiàn)多了兩個(gè)文件
image.png

iOS13的生命周期發(fā)生了一些改動(dòng),app生命周期在iOS 12之前都是在AppDelegate里頭(也就是UIApplicationDelegate里面),但是ios13版本AppDelegate(UIApplicationDelegate)控制生命周期的行為交給了SceneDelegate(UIWindowSceneDelegate)。如下圖所示:
image.png

而且將UIWindow也放在了SceneDelegate文件里
image.png
這個(gè)文件的作用主要是管理多窗口模式,一般做移動(dòng)端app不需要用到多窗口
2.新創(chuàng)建項(xiàng)目啟動(dòng)之后運(yùn)行的是ViewController,顯然需要改成TabBarController

對于啟動(dòng)之后運(yùn)行ViewController一般不適用,大多數(shù)都是運(yùn)行的TabBarController,切換方法如下:

  • 按照慣例,創(chuàng)建項(xiàng)目后將viewController文件和Main.storyboard刪掉

    不用想,此時(shí)運(yùn)行肯定是崩潰了
    image.png
    此時(shí)找不到main文件了,需要去配置文件中修改一下,刪除如下所示:
    image.png
    image.png
  • 此時(shí)運(yùn)行ok,但是問題又來了,運(yùn)行之后發(fā)現(xiàn)是一片黑色
    這種情況比直接崩潰還是好一些了,但是如何解決黑屏問題?
方式一:直接在SceneDelegate文件初始化(需要在iOS13以上版本)
image.png
方式二:在AppDelegate文件初始化

觀看Xcode11之前的項(xiàng)目,相對Xcode11創(chuàng)建的新項(xiàng)目少了SceneDelegate文件,將這個(gè)‘文件刪除掉’,并將window屬性聲明放在AppDelegate文件中去

  • 在AppDelegate文件中按照原來的方法設(shè)置跟控制器
    image.png
  • 需要注釋掉AppDelegate中的如下兩個(gè)方法:
    image.png
  • 在info文件中刪除如下key:
    image.png
  • 到此就恢復(fù)和Xcode11之前的一樣了,正常運(yùn)行ok
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容