xcode11创建的工程适配低版本iOS

在xcode11上创建的工程在iOS13以下的版本上运行会黑屏,对比xcode11和xcode10创建的工程,可以发现:

在xcode10创建的工程目录包括:

AppDelegate.h
AppDelegate.m
ViewController.h
ViewController.m

在xcode11创建的工程目录包括

AppDelegate.h
AppDelegate.m
SceneDelegate.h
SceneDelegate.m
ViewController.h
ViewController.m

在xcode11的工程中新增了SceneDelegate.h/SceneDelegate.m,而在AppDelegate.h中去掉了window的属性和一些生命周期方法。


SceneDelegate主要用于支持iPadOS的多窗口,旧版本中的生命周期和window移到了UIScene中去管理了,用AppDelegate管理单个或多个UIScene,一个UIScene管理单个或多个UIWindow。AppDelegate (UIApplicationDelegate)控制生命周期的行为移交给了SceneDelegate (UIWindowSceneDelegate)。


但是在iOS13以下版本根本没有UIScene这一层,这就会导致运行时出现黑屏,解决方法就是在AppDelegate.h中添加一个window的属性。

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;


@end

如果不想使用Scene,可以在info.plist中删除UIApplicationSceneManifest (Application Scene Manifest),然后删除掉所有跟Scene有关的代码,就走的以前的AppDelegate的那些生命周期方法了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值