在Appdelegate中创建控制器崩溃问题

 

 

1.更新 Xcode11之后新建工程 在Appdelegate中创建控制器崩溃问题

在Appdelegate中创建控制器崩溃问题

出现这种问题的原因。原来是 Appdelegate找不到设置window的方法。

我们还会发现Xcode在新建工程的时候多出了一个SceneDelegate文件

后来查找官方文档发现在iOS13之后,Appdelegate不在负责UI生命周期,所有UI生命周期交给SceneDelegate处理

所以我们创建控制器的时候可以这样

在Appdelegate中创建控制器崩溃问题这就完美解决了。

然而有同学问了我还是想在AppDelegate中处理UI,有没有办法呢,sure!

然后怎么做呢

首先咱们在工程中找到info.plist文件 细心的你会发现文件中多了一个选项

Application Scene Manifest 点击-号删除它  然后在删除SceneDelegate这个类文件

在Appdelegate中创建控制器崩溃问题

然后在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中创建控制器崩溃问题然后在AppDelegate.h 文件中添加

@property (strong, nonatomic) UIWindow * window;

然后在按照以前的方式创建控制器就OK

在Appdelegate中创建控制器崩溃问题