在Xcode 11?新創(chuàng)建的工程,運(yùn)行設(shè)備選擇iOS 13.0?以下的設(shè)備,運(yùn)行啟動(dòng)應(yīng)用時(shí)會(huì)出現(xiàn)黑屏現(xiàn)象
?Xcode 11?默認(rèn)是會(huì)創(chuàng)建通過UIScene?管理多個(gè)UIWindow?的應(yīng)用,工程中除了AppDelegate?外會(huì)多一個(gè)SceneDelegate類。
?SceneDelegate這是iPadOS帶來的新的多窗口支持的結(jié)果,并且有效地將應(yīng)用程序委托的工作分成兩部分。
解決:
如果我們不開發(fā)iPadOS多窗口APP,SceneDelegate窗口管理我們可以不需要,直接刪掉就好了,還是保持和以前一樣單窗口。
a)???????刪除掉info.plist中Application Scene Manifest選項(xiàng);
b)??????刪除SceneDelegate.h、SceneDelegate.m文件,(也可不刪,不調(diào)用就沒啥影響)。
c)???????全局搜索Scene相關(guān)代碼注釋掉。
d)??????Appdelegate.h?新增windows屬性。
@property (strong, nonatomic) UIWindow *window;
e)???????AppDelegate.m?一定要注釋掉下面這兩個(gè)方法,否則運(yùn)行App還是黑屏。
#pragma mark - UISceneSession lifecycle
/*
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
?return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}
-(void)application:(UIApplication*)application didDiscardSceneSessions:(NSSet *)sceneSessions {
}
*/