Я довольно новичок в разработке в Swift, и я, похоже, борюсь с одним из ключевых понятий.Доступ или передача общих данных между несколькими ViewControllers
Я ищу для передачи данных между различными UIViewControllers, позволяя им получить доступ и манипулировать им.
Например, в моем приложении я создал простой класс хранилища данных, содержащий и массив элементов. Я хочу, чтобы этот массив был доступен всем ViewControllers.
Я инициализируется магазин в AppDelegate:
var itemStore = ItemStore()
Я затем создать первый UIViewController и передать в магазине, так что он имеет доступ к нему:
FirstViewController(itemStore: ItemStore)
Так, чтобы сделать это мне нужно внести изменения в init FirstViewController, чтобы он мог принимать itemStore в качестве аргумента.
Затем я хочу передать эти данные в SecondViewController, а затем в ThirdDataController.
Мне кажется ненужным, что я должен редактировать каждый отдельный класс UIViewController, чтобы он принимал itemStore в качестве аргумента.
Какие у меня варианты? Некоторые люди сказали мне хранить данные как свойство AppDelegate, чтобы они были доступны всем. Однако, похоже, это не правильный способ сделать это.
Любые советы?
Так что задает свойство следующего ViewController к данным, которые вы передаете. Однако мне кажется странным, что вам нужно передавать его снова и снова и снова (если вы перейдете с AViewController на BViewController на CViewController). Нет ли способа получить доступ к нему по всему миру? –
@BrianMarsh да просто объявите его на верхнем уровне. Если вы хотите, чтобы он был доступен только на этих двух контроллерах представления, поместите их в один и тот же быстрый файл и объявите var var private в этом файле на верхнем уровне –
@BrianMarsh, вы также можете сохранить его на UserDefault.или локальной базы данных или в файле .Plist. Есть много способов. здесь я дал вам самый простой способ его реализации. – Mehul