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

关联xib的CustomViewController调用无参数构造器为何能正常运行?

问题解答
  • UIViewController的无参数构造器init()内部默认会调用init(nibName: nil, bundle: nil),两种写法本质完全等价,不存在功能差异。
  • 当你传入nibName为nil时,UIKit会自动遵循默认规则查找匹配的XIB文件:优先查找和当前ViewController类名完全一致的XIB文件,你的CustomViewController.xib刚好匹配该规则,所以可以被自动加载。
  • 查找XIB时如果bundle参数为nil,UIKit会默认使用当前类所在的主Bundle,只要你的XIB放在项目主Bundle中,不需要额外指定就能正常加载。
  • 多数示例会显式写出CustomViewController(nibName: nil, bundle: nil),属于代码可读性层面的优化,目的是明确告诉阅读代码的人该控制器是从XIB加载实现,不是强制要求的写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:00:07