Я довольно новичок в iOS и быстро развиваюсь. Множество обучающих программ быстрой + firebase там, материал firebase (например, аутентификация, выборка и сохранение данных) выполняется в ViewController. Насколько я понял, это ведет непосредственно к проблеме «Massive View Controllers». В некоторых учебных пособиях, которые они используют классы, как «DataService.swift» и доступ к ним как синглтон:Как связаться между Service и Viewcontroller?
class DataService {
static let dataService: DataService = DataService()
func createUser(FIRUser: user) {}
...
}
НО эти классы не имеют никакой связи с контроллером зрения, когда они сделаны, например, с создавая пользователя. Позвольте мне быть более конкретным. Я думаю, это должно понравиться:
- User taps login button.
- Затем ViewController вызывает dataService.createUser (пользователь), который обрабатывает данные входа и сохраняет данные пользователя в firebase.
- Если он закончен, он должен связаться с контроллером представления, чтобы он был готов.
- ViewController проверяет результат createUser() и переводит пользователя в другое представление.
Как я могу это сделать? На данный момент я использую шаблон делегирования. Это хороший способ справиться с этим?
вам необходимо использовать методы-делегаты для связи между viewControllers и singleton. – Dravidian
Существует несколько способов, которыми вы можете справиться. Вы можете использовать NotificationCenter для отправки сообщений о событиях в вашем приложении, вы могли бы использовать вышеупомянутые шаблоны делегатов/протоколов, вы могли бы добавлять блоки завершения, когда это необходимо, и т. Д. Вопрос слишком широк, чтобы дать прямой ответ - я бы предложил исследовать каждую из этих определить, какой метод лучше всего подходит для ваших нужд, а затем задать конкретные вопросы об этом, если вы окажетесь застряли. – BJHStudios