11纯代码 oc xcode_iOS开发之Xcode11后纯代码项目工程设置

Xcode 11发布之后,新建iOS项目工程时,会有很多变化,最大的变化是多了文件SceneDelegate,此时如果希望通过纯代码设置界面,流程与以往会有一些不一样,本文简单介绍一下。

纯代码的条件

删除Main Interface中的Main,同时需要删除info.plist中的如下代码

UISceneStoryboardFile

Main

项目文件变化

AppDelegate.swift文件负责App的启动与终止,并负责与SceneDelegate交接。

SceneDelegate.swift文件负责管理应用程序的生命周期。

保留SceneDelegate

AppDelegate中通过application(_:configurationForConnecting:options)返回一个UISceneConfiguration实例

完成启动后,控制权被交接给 SceneDelegate,它的 scene(_:willConnectTo:options:)将会被调用,设置window的根视图控制器

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

guard let windowScene = (scene as? UIWindowScene) else { return }

//创建window

self.window = UIWindow(windowScene: windowScene)

//设置window的rootViewController

self.window?.rootViewController = ViewController()

self.window?.makeKeyAndVisible()

}

不保留SceneDelegate

删除SceneDelegate.swift

删除info.plist中的如下内容

删除内容.png

AppDelegate.swift中代码写成和Xcode11之前的样子

var window: UIWindow?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

//创建window

self.window = UIWindow(frame: UIScreen.main.bounds)

//设置window的rootViewController

self.window?.rootViewController = ViewController()

self.window?.makeKeyAndVisible()

return true

}

删除 AppDelegate.swift中的如下代码

func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {}

func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) {}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值