在Appdelegate中创建控制器崩溃问题
1.更新 Xcode11之后新建工程 在Appdelegate中创建控制器崩溃问题
出现这种问题的原因。原来是 Appdelegate
找不到设置window的方法。
我们还会发现Xcode在新建工程的时候多出了一个SceneDelegate
文件
后来查找官方文档发现在iOS13之后,Appdelegate
不在负责UI生命周期,所有UI生命周期交给SceneDelegate
处理
所以我们创建控制器的时候可以这样
这就完美解决了。
然而有同学问了我还是想在AppDelegate中处理UI,有没有办法呢,sure!
然后怎么做呢
首先咱们在工程中找到info.plist文件 细心的你会发现文件中多了一个选项
Application Scene Manifest 点击-号删除它 然后在删除SceneDelegate这个类文件
然后在APPdelegate.m,注释或者删掉图示里面内容
然后可以在里面添加生命周期方法
#pragma mark - 生命周期 - (void)applicationWillEnterForeground:(UIApplication *)application{ NSLog(@"状态** 将要进入前台"); } - (void)applicationDidBecomeActive:(UIApplication *)application{ NSLog(@"状态** 已经活跃"); } - (void)applicationWillResignActive:(UIApplication *)application{ NSLog(@"状态** 将要进入后台"); } - (void)applicationDidEnterBackground:(UIApplication *)application{ NSLog(@"状态** 已经进入后台"); } - (void)applicationWillTerminate:(UIApplication *)application{ NSLog(@"状态** 将要退出程序"); }
然后在AppDelegate.h 文件中添加
@property (strong, nonatomic) UIWindow * window;
然后在按照以前的方式创建控制器就OK