Swift 5.1 Могу ли я получить доступ к объявлению экземпляра структуры в другом контроллере представления? - PullRequest
0 голосов
/ 26 мая 2020

У меня есть структура:

struct User {
var name: String = ""
}

Затем я создал экземпляр структуры в контроллере представления 1

var user = User()

Присвоил ему значение в контроллере представления 1

user.name = "John"

Как скопировать значение «John» в другой контроллер представления с помощью экземпляра структуры? Моя основная цель - использовать структуры в шаблоне проектирования MVC.

1 Ответ

1 голос
/ 26 мая 2020

Это можно сделать множеством способов. Во-первых, я бы сказал, что если вы передаете его контроллеру детального представления, используйте метод prepareForSegue.

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")
...