Инициализируйте структуру с пустыми переменными и сделайте ее доступной глобально - PullRequest
0 голосов
/ 31 мая 2018

Каково лучшее решение для инициализации структуры в swift с пустыми переменными и сделать ее доступной для большего количества контроллеров представления?Я знаю, как передавать данные между двумя контроллерами вида, например:

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

Но есть ли другое элегантное решение, чтобы сделать его доступным для всех видов.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Создайте файл swift и добавьте следующий код

Вы должны создать sharedInstance, чтобы он не инициализировался каждый раз

public class AppGlobalManager {

    // MARK: - Init 

    private init() {}

    // MARK: - Var

   static let sharedManager = AppGlobalManager()

   var name:String = ""
}

Теперь вы можете получить к нему доступ в любом месте, просто

AppGlobalManager.sharedManager.name

ПРИМЕЧАНИЕ. Не рекомендуется использовать это для передачи данных из viewcontroler в view controller. Вы можете использовать это для некоторых объектов глобального уровня, например, здесь вы можете хранить информацию о пользователе для входа.и очистить его при выходе из системы

Надеюсь, что это полезно

0 голосов
/ 31 мая 2018

Один из способов - создать структуру со статической переменной.

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