【问题标题】:storyboard viewcontroller to coded viewcontroller故事板视图控制器到编码视图控制器
【发布时间】:2018-01-01 03:03:19
【问题描述】:

是否可以将 Storyboard ViewControllers 与手动编写代码的 ViewControllers 连接起来?我想要做的是制作一个应用程序,当建立互联网连接时,我会看到故事板中使用 xcode 中提供的工具(如步进器、进度视图等)制作的视图控制器,并且当没有互联网连接时,我想访问不使用提供的情节提要的编码视图控制器。如何从情节提要中的视图控制器过渡到不在情节提要中的视图控制器?谢谢!

更新:我试图找到的图像描述: depiction

【问题讨论】:

  • 发布一些代码?
  • 您问是否可以在代码中实例化视图控制器并在代码中转换到它?当然可以。或者您在问是否可以在从情节提要加载视图控制器和在代码中实例化视图控制器之间进行选择?当然可以。
  • 所以我有两个 xcode 文件。在其中一个中,我通过以下代码通过代码建立了故事板: let layout = UICollectionViewFlowLayout() // layout.scrollDirection = .Horizo​​ntal window?.rootViewController = UINavigationController(rootViewController: HomeController(collectionViewLayout: layout))
  • 在另一个文件中,我只有传统的启动故事板的方式(我有一个在 Main.storyboard 中启动的视图控制器)
  • 我的问题是:有没有办法可以从第二个文件过渡到第一个文件的视图控制器。不用担心合并。我可以将必要的文件从第一个文件移动到第二个文件。

标签: xcode uiviewcontroller storyboard


【解决方案1】:

我相信您想做的是以编程方式显示故事板?

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ViewController")
window?.rootViewController = vc

不要忘记在界面构建器中将“ViewController”标识符添加到 ViewController。

【讨论】:

  • 如果我有一个名为 NewController.swift 的文件和一个名为 NewController 的类,并且我想以编程方式调用这个视图控制器,那么我会做些什么不同的事情呢?上面的答案不是只是创建了一个任意的 viewcontroller 实例吗?
  • 它正在实例化您在主故事板上拥有的任何 VC。如果您将“NewController”的标识符设置为 ViewController,它将显示那个。
  • 是否可以通过编程方式设置我的“NewController”的标识符?
  • 为什么要以编程方式进行?您正在使用故事板。标识符用于获取对 IB 视图控制器的引用。我认为有一种替代方法称为 instantiateInitialViewController,或者可以为您提供任何设置为情节提要中的“根”vc 的方法。
  • 因为viewController“NewController”已经被编码,而不是使用.storyboard手动拖动,所以我无法进入.storyboard并为“NewController”设置标识符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-05
  • 2013-02-01
相关资源
最近更新 更多