新建 Xcode 项目
在 Xcode 11 环境下新建一个 Single View App 项目,打开这个新的项目,可以看到 Xcode 除了会自动生成 AppDelegate 文件外,还会自动生成一个名为 SceneDelegate 的文件。
项目目录
⚠️ SceneDelegate 是 iOS 13 下的新特性。这是为了实现 iPadOS 支持多窗口功能的结果,如果你不需要多窗口(multiple windows)功能,或者说很多旧应用或者框架还未适配该特性,如果基于 SceneDelegate 并且引入未适配的框架运行应用会导致崩溃!所以,下面首先介绍如何删除 SceneDelegate 特性,并继续使用旧的 AppDelegate 特性管理应用。
- 首先打开
Info.plist文件,找到下面这两个属性并删除。
- 删除
SceneDelegate类文件,也可以保留不用管它,但既然我们用不到就删了吧。 - 修改
AppDelegate.h文件,加上UIWindow属性。
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow * window;
@end
- 修改
AppDelegate.m文件,设置UIWindow设置主窗口,并删除多余的<UISceneSession>代理协议。
#import "AppDelegate.h"
#import "ViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 设置根视图控制器
ViewController *controller = [[ViewController alloc] init];
// 窗口根视图控制器
self.window.rootViewController = controller;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
// 下面多余的代码请删除
@end
键盘快捷键 cmd + R 运行项目,应用应该可以正常运行了。











网友评论