@property (strong, nonatomic) UIWindow *window;
添加到AppDelegate.h
AppDelegate.h
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
//
//添加
@property (strong, nonatomic) UIWindow *window;
@end
方式二:ios13以下都可以的,高版本ios就不可以了,是因为用了SceneDelagate
的文件。如果不想用这个可以修:
Xcode 11创建的工程,一开始运行时会出现黑屏现象。里面也多出SceneDelagate
的文件。
原因:
- Xcode 11 默认是会创建通过
UIScene
管理多个UIWindow
的应用,工程中除了AppDelegate
外会多一个SceneDelegate
AppDelegate
和SceneDelegate
是iPadOS带来的新多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。
在多窗口开发iPadOS中,从iOS 13开始,AppDelegate
应该:
- 设置应用程序期间所需的任何数据。
- 响应任何专注于应用的事件,例如与您共享的文件。
- 注册外部服务,例如推送通知。
- 配置您的初始场景。
IOS13之后,生命周期时间就开始由UISceneDelegate
接管。
解决适配方案:
- 删除掉
info.plist
中Application Scene Manifest
选项,同时可以删除Scenedelegate.h
和Scenedelegate.m
- 删掉
AppDelegate.m
中的#pragma mark - UISceneSession lifecycle
的代码 - 在
AppDelegate.h
中添加@property (strong, nonatomic) UIWindow * window;
重新编译运行,黑屏终于变白!
可以自己生命周期在AppDelegate.m中
例如:
https://blog.csdn.net/leek5533/article/details/107467873
参考: