【问题标题】:How can I initial a controller by class name,while this controller is in a storyboard? [closed]当这个控制器在故事板中时,如何通过类名初始化控制器? [关闭]
【发布时间】:2019-05-13 02:57:13
【问题描述】:

有没有办法在不知道情节提要名称的情况下初始化情节提要控制器?

我能得到什么:控制器的类名和控制器的故事板 ID。

值得注意的是,我不需要知道故事板的名称。

【问题讨论】:

    标签: ios objective-c storyboard


    【解决方案1】:

    情节提要中的视图控制器(场景)必须有一个标识符。这不是一堂课;这是一个字符串。现在您可以使用该字符串调用instantiateViewController(withIdentifier:)

    【讨论】:

    • 好像没有表达清楚。我已经更新了这个问题。可以再看一遍吗?
    • 这不会改变我的答案。无论如何,类名毫无意义,因为情节提要可以有许多视图控制器类的实例。标识符是您识别的方式!
    • ‘instantiateViewController(withIdentifier:)‘必须先得到storyboard,也就是说应该知道storyboard的名字,这不是我的初衷。
    • 我不在乎你的意图是什么。如果没有参考该故事板,您就无法从故事板中得到一些东西。如果您不喜欢这样,请不要使用故事板!
    【解决方案2】:

    答案是否定的

    你不能在不知道故事板名称的情况下实例化任何 ViewController。如果您创建该 ViewController 的 .xib 文件并像这样使用它,则可以这样做:

        let vc = YourControllerName(nibName: "fileName", bundle: nil)
        self.navigationController?.pushViewController(vc, animated: true)
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2014-12-28
      • 1970-01-01
      • 2013-09-16
      相关资源
      最近更新 更多