【问题标题】:Get storyboard id of the current viewcontroller获取当前视图控制器的情节提要 id
【发布时间】:2021-10-08 10:01:47
【问题描述】:

可能是一个愚蠢的问题,但我找不到解决方案。
我需要保存当前的故事板 ID,因此当导航到另一个视图控制器时,我会知道谁是发送者视图控制器。
我想使用storyboardid。 我看到了很多使用这个 id 来创建视图控制器的实例的答案。像这样:

let view = storyboard.instantiateViewController(withIdentifier: "MyStoryboardId") as UIViewController

但我找不到方法。

我在按钮操作中,所以我可以在调试窗口中看到:

self.window.rootViewController.storyboard

有一些保存故事板ID的东西-> identifiertoUINibMap.
但我不知道如何获得它。

【问题讨论】:

  • 提示:使用restoreIdentifier
  • 就个人而言,当我想根据呈现的视图控制器而不是使用情节提要 ID 做某事时,我会测试视图控制器的类(例如 if foo is SomeViewController { ... }) .或者我在呈现视图控制器中设置了一些属性。或者使用委托协议模式。如果没有更多关于您要解决的更广泛问题的详细信息,很难就最佳解决方案向您提供建议。但尝试获取故事板标识符通常不是我的第一种方法。
  • @RajaKishan 我试过这个,但它返回 nil。我试过self.restorationIdentifierself.window?.rootViewController?.restorationIdentifier
  • 你必须先从storyboard设置restoreIdentifier

标签: swift uikit storyboard


【解决方案1】:

试试这个:-

extension UIViewController {
    var storyboardId: String {
        return value(forKey: "storyboardIdentifier") as? String ?? "none"
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2014-08-12
    • 1970-01-01
    • 2011-12-23
    • 2013-10-21
    • 2012-06-27
    • 1970-01-01
    相关资源
    最近更新 更多