您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Swift 3中创建ViewController的单例

在Swift 3中创建ViewController的单例

如果您真的想为某个场景对应的视图控制器设置单例,则可能需要执行以下操作:

class SecondViewController: UIViewController {

    static let shared = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Foo")

}

在此示例中,情节提要是Main.storyboard,问题场景的情节提要标识符是Foo。显然,将这??些值替换为适合您的情况的值。

然后您的另一个调用方法的视图控制器可以执行以下操作:

@IBAction func didTapButton(_ sender: Any) {
    let controller = SecondViewController.shared
    show(controller, sender: self)
}

我不建议将单例用于视图控制器。视图控制器(及其视图)应在需要时创建,并在解散它们时允许释放。而且您将失去许多情节提要优势(通过它们您可以看到场景之间的逻辑流程以及场景之间的顺序)。而且,如果您在不同的上下文中使用此视图控制器,则会引发由视图控制器层次结构与视图层次结构不同步引起的问题。我真的不鼓励您使用单例作为视图控制器。

但是,如果您打算这样做,则可以执行类似的操作…

Swift 2022/1/1 18:15:02 有486人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶