You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift如何编程将自定义控制器设为根控制器?解决NIB无法加载报错

问题原因

你初始化HomeViewController时传入了nibName: "HomeViewController"参数,但是项目中没有创建同名的xib(NIB)文件,系统在Bundle中找不到对应NIB文件就会触发崩溃。你明确设置了不使用StoryBoard,也没有配套xib文件的场景下,不应该使用带nibName参数的构造方法。

解决方案

直接修改SceneDelegate中的ViewController初始化代码即可,把带nibName的构造替换为无参数的默认构造:

// 把原来这行
window?.rootViewController = HomeViewController(nibName: "HomeViewController", bundle: nil)
// 替换为
window?.rootViewController = HomeViewController()
额外检查项
  • 确认已经删除了项目配置里主界面相关的Storyboard配置:打开项目TARGETS -> Info -> Custom iOS Target Properties,删除Main storyboard file base name条目;同时在Info选项卡下的Scene Configuration -> Application Session Role -> Item 0中,确认Storyboard name字段为空
  • 如果你的HomeViewController是纯代码写UI,确保在loadView或者viewDidLoad中正确配置了所有UI控件的约束/frame,避免出现空白页面

内容的提问来源于stack exchange,提问作者Rodion Raskolnikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:39:02