Swift 5.1 我可以访问另一个视图控制器中的结构实例声明吗?

Swift 5.1 Can I access a struct instance declaration in another view controller?

我有一个结构:

struct User {
var name: String = ""
}

然后我在视图控制器 1 中创建了一个结构实例

var user = User()

在视图控制器 1 中为其赋值

user.name = "John"

如何使用结构实例在另一个视图控制器中复制值 "John"? 我的主要目标是在 MVC 设计模式中使用结构。

这可以通过多种方式完成。首先我会说如果你将它传递给详细视图控制器然后使用 preparForSegue 方法。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "someSegue" {
        let vc = segue.destination as! YourDetailVC
        vc.user = self.user
    }
}

对于其他传递数据的方式,您应该研究回调、委派和通知中心。

结构也自动带有成员初始化器。所以可以这样初始化:

let user = User(name: "John")