IOS开发日志-ios新建项目后-将storyboard去掉,版本调整为IOS13以下

目标IOS版本12,Xcode 16.2,记录ios新建项目后,如何将故事板storyboard和SceneDelegate 文件去掉,调整为代码开发。

创建后的项目中包含SceneDelegate,SceneDelegate 是 iOS 13 引入的类,用于管理应用程序的生命周期和界面显示。如果开发IOS13以下的项目,需要对SceneDelegate 进行调整。

调整步骤:

将 var window: UIWindow? 复制或者移动到 AppDelegate 当中。

删除 SceneDelegate

删除AppDelegate 中标红的代码。

删除 Main.storyboard 。

删除 Info.plist 中的标红部分。

设置默认显示的界面

AppDelegate 中添加如下代码。

Swift 复制代码
        // 设置默认显示页面(此处为固定的写法)
        let controller = ViewController()
        self.window = UIWindow(frame: UIScreen.main.bounds)
        window!.rootViewController = controller
        window!.makeKeyAndVisible()

程序运行后,没有显示红色背景,并且出现了报错,说明没有加载到 ViewController ,检查一下。

Thread 1: "Could not find a storyboard named 'Main' in bundle NSBundle </Users/dengming/Library/Developer/CoreSimulator/Devices/E911900E-95D7-40F2-BDA0-F7EDCF15F82E/data/Containers/Bundle/Application/D17467AA-3EA9-4577-8B0B-9C16FC6941D9/cmMusic.app> (loaded)"

将target中info 中的 Main storyboard file base name 属性值,设置为空。

再次运行,已经可以成功加载到 ViewController ,并移除了故事板。

实现效果

附:AppDelegate 和 ViewController 代码

Swift 复制代码
//
//  ViewController.swift
//  cmMusic
//
//  Created by deng ming on 2025/2/4.
//
import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        view.backgroundColor = .red     
       // self.view.backgroundColor = .red
    }
}
//
//  ViewController.swift
//  cmMusic
//
//  Created by deng ming on 2025/2/4.
//
import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        view.backgroundColor = .red
       // self.view.backgroundColor = .red
    }
}
相关推荐
@PHARAOH8 小时前
HOW - 在 Mac 上的 Chrome 浏览器中调试 Windows 场景下的前端页面
前端·chrome·macos
yangpipi-10 小时前
10.王道_HTTP
网络协议·http·ios
鸿蒙布道师14 小时前
鸿蒙NEXT开发动画案例2
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei
海尔辛15 小时前
学习黑客 MAC 地址深入了解
学习·macos·php
I烟雨云渊T15 小时前
iOS 模块化开发流程
ios
刘小哈哈哈16 小时前
Lost connect to debugger on ‘iphone‘
ios·iphone
I烟雨云渊T16 小时前
iOS蓝牙技术实现及优化
macos·ios·cocoa
大力水手~18 小时前
微信小程序上传视频,解决ios上传完video组件无法播放
ios·微信小程序·音视频
学渣6765619 小时前
mac连接lniux服务器教学笔记
服务器·笔记·macos
CHANG_THE_WORLD19 小时前
Mac 平台获取地区标识符号
java·开发语言·macos