iOS13 Scene Delegate详解~https://www.jianshu.com/p/53e3252dc07e
上面有兼容iOS12及一下的方法
下面是直接在新项目里做iOS13及以上版本的方法
iOS13中appdelegate的职责发现了改变:
iOS13之前,Appdelegate的职责全权处理App生命周期和UI生命周期;
iOS13之后,Appdelegate的职责是:
1、处理 App 生命周期
2、新的 Scene Session 生命周期
那UI的生命周期交给新增的Scene Delegate处理
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
UIWindowScene *windowScene = (UIWindowScene *)scene;
self.window = [[UIWindow alloc] initWithWindowScene:windowScene];
self.window.frame = windowScene.coordinateSpace.bounds;
UITabBarController *tabbarController = [[UITabBarController alloc] init];
UIViewController *controller1 = [[UIViewController alloc] init];
controller1.view.backgroundColor = [UIColor redColor];
controller1.tabBarItem.title = @"新闻";
UIViewController *controller2 = [[UIViewController alloc] init];
controller2.view.backgroundColor = [UIColor yellowColor];
controller2.tabBarItem.title = @"视频";
UIViewController *controller3 = [[UIViewController alloc] init];
controller3.view.backgroundColor = [UIColor blueColor];
controller3.tabBarItem.title = @"推荐";
UIViewController *controller4 = [[UIViewController alloc] init];
controller4.view.backgroundColor = [UIColor greenColor];
controller4.tabBarItem.title = @"我的";
// 将四个页面的 UIViewController 加入到 UITabBarController 之中
[tabbarController setViewControllers: @[controller1, controller2, controller3, controller4]];
self.window.rootViewController = tabbarController;
[self.window makeKeyAndVisible];
}
网友评论