Xcode14.2中如何设置UIKit App Delegate的lifecycle选项?
在Xcode14.2中配置UIKit App Delegate生命周期的方法
一、新建项目时直接选择传统App Delegate生命周期
新建iOS项目选「App」模板后,拉到界面底部:
- 「Interface」选「Storyboard」或「XIB」(不要选SwiftUI)
- 「Life Cycle」选项里,手动切换成「UIKit App Delegate」(Xcode12之后默认是「UIKit App Scene Delegate」,得自己改)
二、已创建的项目切换回App Delegate生命周期
如果项目已经建好,按以下步骤修改:
- 删除项目里的
SceneDelegate.swift文件 - 打开
Info.plist,找到并删除「Application Scene Manifest」整个条目 - 修改
AppDelegate.swift:- 添加
var window: UIWindow?属性 - 删除所有和
scene(_:)相关的方法 - 在
application(_:didFinishLaunchingWithOptions:)方法里添加窗口初始化代码,示例:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = ViewController() // 替换成你的根控制器 window?.makeKeyAndVisible() return true }
- 添加
关于Xcode12+的生命周期说明
Xcode12及以上不是不需要配置App Delegate生命周期,只是默认启用了基于Scene的生命周期(适配iPad分屏、多窗口等场景)。如果你的项目不需要这些多窗口特性,完全可以切换回传统的App Delegate模式,两者是可选的,不是强制废弃。
内容的提问来源于stack exchange,提问作者Taku.dev
相关产品推荐
相关产品推荐

