如何将项目从使用故事板转换为不再使用故事板?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将项目从使用故事板转换为不再使用故事板?相关的知识,希望对你有一定的参考价值。
如果我有一个已经使用了Storyboard的Xcode项目,现在我想切换到以编程方式加载视图控制器,我该怎么做?
这是关于这样做的in-depth article。 TLDR是:
- 在项目设置中,清除主界面:
- 在您的
didFinishLaunching
中使用如下代码:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) let homeViewController = UIViewController() homeViewController.view.backgroundColor = UIColor.red window!.rootViewController = homeViewController window!.makeKeyAndVisible() return true }
慢。一步一步来。
故事板不是全有或全无。您可以继续将故事板用于有用的地方,并且可以对不适合的地方使用程序化加载,并且您可以一步一步地在它们之间进行转换。
如果你想从Storyboard中展开一个片段,那么第一步是删除导入和导出它的segues,然后以编程方式从instantiateViewController(withIdentifier:)
的Storyboard加载该视图控制器。
然后,您可以将给定场景拉入其自己的单独故事板(选择场景,编辑器,重构到故事板......),以便它完全独立于所有其他场景。然后,您可以将一个视图控制器重新编写为编程代码,而不会中断项目中的任何其他内容。你也可以在这里混合搭配;从Storyboard加载视图控制器,但在init(nibName:bundle:)
中手动处理初始化。
您还可以将故事板视图剪切并粘贴到其自己的XIB文件中,这有时更易于使用,而无需放弃GUI布局系统。选择视图,复制,创建一个新的XIB文件(在模板中称为“视图”),然后粘贴它。这对init(nibName:bundle:)
来说更容易使用。
但关键是不要试图一次性修改整个项目。如果有一部分故事板导致故障,请重构它们。如果您更喜欢程序代码,那么请一次重构一步,直到完成或直到您做得足够开心。
正如Senseful的回答所说,顶级场景略显特别。您可以在更改或不更改其他场景的情况下更改它。
以上是关于如何将项目从使用故事板转换为不再使用故事板?的主要内容,如果未能解决你的问题,请参考以下文章