UIKit中is Initial View Controller设置在Xcode 13 M1设备上不生效怎么办
解决方案
1 检查Info.plist配置
Xcode 13新建项目默认使用Scene生命周期管理,配置不匹配会直接导致黑白屏问题:
- 打开项目根目录的
Info.plist,展开Application Scene Manifest条目 - 依次进入
Scene Configuration>Application Session Role>Item 0,确认Storyboard Name字段的取值和你当前使用的主Storyboard文件名完全一致(默认文件名为Main,如有自定义修改需同步更新此处)
2 检查Storyboard控制器关联配置
- 选中你新建的Table View Controller,打开Identity检查器,确认Custom Class栏的Class字段已关联对应控制器类,未自定义子类可填写默认的
UITableViewController,不可留空 - 勾选
Is Initial View Controller选项后,确认控制器左上角出现灰色的初始控制器指向箭头,同个Storyboard内不能同时存在多个初始控制器箭头
3 清理Xcode缓存(M1芯片设备优先尝试)
Xcode在M1芯片设备上容易出现缓存异常导致渲染问题,按以下步骤操作:
- 按下
Command + Shift + K执行构建缓存清理 - 完全退出Xcode,访问路径
~/Library/Developer/Xcode/DerivedData,删除对应你的项目名称的缓存文件夹 - 重新打开Xcode运行项目
备选快速修复方案
如果上述操作都未解决,可以移除Scene生命周期配置改用传统AppDelegate管理逻辑:
- 删除项目中的
SceneDelegate相关代码文件 - 删除
Info.plist中整个Application Scene Manifest条目 - 在
AppDelegate类中添加窗口属性声明:- Swift:
var window: UIWindow? - Objective-C:
@property (strong, nonatomic) UIWindow *window;
- Swift:
问题对应截图


内容的提问来源于stack exchange,提问作者Paolo Donato Navarro
相关产品推荐
相关产品推荐

