使用空变量初始化结构并使其全局可用

时间:2018-05-31 06:46:16

标签: swift struct global init

使用空变量在swift中初始化结构并使其可通过更多viewcontrollers访问的最佳解决方案是什么?我知道如何在两个viewcontrollers之间传递数据,如:

let myVC = storyboard?.instantiateViewControllerWithIdentifier("SecondVC") as! SecondVC
myVC.stringPassed = myLabel.text!

但是还有另一种优雅的解决方案可以让它可以访问整体视图。

2 个答案:

答案 0 :(得分:0)

一种方法是使用静态变量创建结构。

struct CommonValues {
    static var text: String = ""
}

答案 1 :(得分:0)

创建swift文件并添加以下代码

您应该创建sharedInstance,以便每次都不会初始化

public class AppGlobalManager {

    // MARK: - Init 

    private init() {}

    // MARK: - Var

   static let sharedManager = AppGlobalManager()

   var name:String = ""
}

现在只需

就可以在任何地方访问它
AppGlobalManager.sharedManager.name

注意:使用此方法将数据从viewcontroler传递到视图控制器不是一个好习惯。您可以将此用于某些全局级别对象,例如您可以在此处保留登录用户信息。注销时清除它

希望它有用