如何运行主故事板(main)之外的其他故事板?
如何单独运行新创建的故事板(不关联主故事板)
方法一:修改项目Info配置直接指定启动故事板
- 打开Xcode,选中项目导航栏里的根项目
- 切换到Info标签页
- 找到Custom iOS Target Properties下的
Main storyboard file base name,把它的值改成你新故事板的名称(不用加.storyboard后缀) - 确保你的新故事板已经设置了初始视图控制器:打开故事板,选中要作为启动的视图控制器,在右侧属性面板勾选Is Initial View Controller
方法二:用代码动态设置启动控制器(更灵活)
如果不想修改Info配置,或者需要根据条件切换启动故事板,可以用代码实现:
适用于UIKit项目(AppDelegate)
打开AppDelegate.swift,在application(_:didFinishLaunchingWithOptions:)方法里添加代码:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // 替换成你的新故事板名称 let targetStoryboard = UIStoryboard(name: "NewStoryboard", bundle: nil) if let initialVC = targetStoryboard.instantiateInitialViewController() { window?.rootViewController = initialVC window?.makeKeyAndVisible() } return true }
适用于iOS 13+的UIKit项目(SceneDelegate)
打开SceneDelegate.swift,在scene(_:willConnectTo:options:)方法里修改:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = scene as? UIWindowScene else { return } let window = UIWindow(windowScene: windowScene) // 替换成你的新故事板名称 let targetStoryboard = UIStoryboard(name: "NewStoryboard", bundle: nil) window.rootViewController = targetStoryboard.instantiateInitialViewController() self.window = window window.makeKeyAndVisible() }
最后验证
清理项目(快捷键Cmd+Shift+K),重新构建运行(Cmd+R),模拟器就会加载你的新故事板了。
内容的提问来源于stack exchange,提问作者Karan
相关产品推荐
相关产品推荐

