【问题标题】:Instantiate view controller created in storyboard from a storyboard less view controller从没有故事板的视图控制器实例化在故事板中创建的视图控制器
【发布时间】:2021-08-05 22:17:09
【问题描述】:

我有两个视图控制器:

  1. MainController.swift - 无 Soryboard 视图控制器
  2. SecondController.swift - 故事板视图控制器

如何在MainController 中实例化SecondController

storyboard?.instantiateViewController(withIdentifier: _) 不起作用,因为 MainController 没有情节提要。

【问题讨论】:

  • 没有情节提要意味着你的控制器是XIB?
  • 您可以使用init(name:bundle:) 以编程方式处理捆绑包中的任何故事板

标签: ios swift storyboard


【解决方案1】:

如何在 MainController 中打开 SecondController?

这取决于“开放”的含义。例如,你可以说

present(SecondController(), animated:true)

或者,如果界面中有导航控制器,您可以将其推送到导航控制器上。这种事情,和类似的,是相当标准的。故事板是一项相对较新的创新。当我开始为 iOS 编程时,一切都没有它们就完成了。

【讨论】:

    【解决方案2】:

    使用init(name:bundle:):

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let secondVC = storyboard.instantiateViewController(withIdentifier: "SecondController") as! SecondController
    

    如果您想查看应用中的示例用法,请查看 this file

    【讨论】:

    • 什么是“主要”?
    • 包含视图控制器的 sotryboard 文件的名称。看看我链接的项目。
    • "没有故事板的 MainController.swift"
    • 对不起,命名的VC需要是SecondController。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多