Xcode11 删除storyboard

Xcode 11中创建一个名为的新项目时,多了一个新类SceneDelegate:

删除main.storyboard  — 删除info.plist  storyboard name main   general 删掉 main interface 内main

不一样:之前在AppDelegate 

在screenDelegate.m 写入UIWindow

self.window = [[UIWindow alloc] initWithWindowScene:scene];

IOS Xcode Version 11.0 beta 6  删除Main.storyBoard_ios

@implementation SceneDelegate
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {

self.window = [[UIWindow alloc] initWithWindowScene:scene];
self.window.backgroundColor = [UIColor whiteColor];
ViewController *VC = [[ViewController alloc]init];
NavihationViewController *NVC = [[NavihationViewController alloc]initWithRootViewController:VC];
[self.window setRootViewController:NVC];
[self.window makeKeyAndVisible];
}
@end

 

新的Xcode项目时,你会看到你的AppDelegate分为两部分:AppDelegate和SceneDelegate这是iPadOS带来的新的多窗口支持的结果,并且有效地将应用程序委托的工作分成两部分。

从iOS 13开始,您的应用代表应该:

  1. 设置应用程序期间所需的任何数据。
  2. 响应任何专注于应用的事件,例如与您共享的文件。
  3. 注册外部服务,例如推送通知。
  4. 配置您的初始场景。

相比之下,场景代表可以处理应用程序用户界面的一个实例。因此,如果用户创建了两个显示您的应用程序的窗口,则您有两个场景,均由同一个应用程序委托支持。

请记住,这些场景旨在彼此独立工作。因此,您的应用程序不再移动到后台,而是单个场景执行 - 用户可以将一个移动到后台,同时保持另一个打开。

在iOS 13中的新顶级对象是一个UIWindowScene