1,如果项目不需要适配iOS13以下的机型。xcode11之后,入口放在了SceneDelegate里面。直接使用就可以了:
objc
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
self.window = [[UIWindow alloc] initWithWindowScene:(UIWindowScene *)scene];
MyTestController *vc = [MyTestController new];
vc.view.backgroundColor = UIColor.redColor;
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
}
swift
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
let vc = MyTestController.init()
vc.view.backgroundColor = UIColor.red
window?.rootViewController = vc
window?.makeKeyAndVisible()
}
2,xcode11创建的项目,对于iOS13以下的设备,直接运行会黑屏。所以需要要适配iOS13以下的机型的的话需要做另外的处理。去掉scenedelegate相关的东西,入口还是原来的APPdelegate:
-
删除info文件里关于scenedelegate里的配置信息:删除Application Scene Manifest
-
在APPdelegate.h文件增加window属性
删除scenedelegate的.h和.m文件
在APPdelegate.m里删除新加的scene方法,然后写法就和以前一样了。