У меня есть вкладками приложения с несколькими представлениями, пользователь может переключаться между :1 база данных прочитана для всех просмотров?
Все эти представления заполняются данными, которые я читаю из моей базы данных Firebase. Сейчас я читаю данные для каждого вида в viewDidLoad()
зависимости от его вида контроллера:
override func viewDidLoad() {
super.viewDidLoad()
let dbRef = FIRDatabase.database().reference().child("data")
dbRef.observeSingleEvent(of: .value, with: { snapshot in
...
Однако, мне было интересно, это это можно только из базы данных один раз, а затем каким-то образом обмениваться данными между всеми контроллеры представления каждой вкладки.
Путь я получаю в этой раскадровке в первую очередь с Segue из другого видеоредактора:
performSegue(withIdentifier: "MainAppSegue", sender: self)
Кто-нибудь знает, если это возможно? Нужно ли мне сохранять данные в UserDefaults или что-то в этом роде?
Так что я пытаюсь использовать свой код в новом классе я сделал для моей панели вкладок, и я получаю сообщение об ошибке: 'Использование незаявленных типа«ChildViewController''. Есть ли что-то еще, что я должен там положить? Кроме того, из вашего кода каждый контроллер представления разных вкладок должен иметь переменную, называемую 'dbRef' внутри, правильно? – MarksCode
Это пример, предполагающий, что все ваши дочерние VC-контроллеры вашей панели управления наследуются от подкласса UIViewController под названием ChildViewController и имеют свойство dbRef. В качестве альтернативы вы можете отказаться от цикла for и сказать 'if let childViewController = childViewControllers [0] как? YourViewController {// set dbRef} 'и повторить для всех 5. –