Может ли кто-нибудь объяснить мне, как реализовать шаблон MVVM, когда проект включает в себя Storyboard?MVVM pattern and Storyboard iOS
Во многих примерах я увидел, что мне нужно использовать файлы .xib
. И init
ViewControllers
так:
-(instancetype)initWithModelView:(ViewModel *)viewModel{
self = [super init];
if(self){
_viewModel = viewModel;
}
return self;
}
Но с раскадровки я не могу init
viewControllers
, раскадровка делает это для меня. Должен ли я использовать свойства вместо этого?
т.е.
UINavigationController *nav = (UINavigationController *)[self.viewControllers objectAtIndex:0];
HomeViewController *hvc = (HomeViewController *)[nav.viewControllers objectAtIndex:0];
hvc.viewModel = viewModel;
сам является UITabBarController
.
Хм ... Означает ли это, что в Swift свойство 'viewModel' контроллера вида необходимо неявно разворачивать? –
Я так думаю. Вот пример реального мира приложения MVVM в быстром (с раскадными версиями): https://github.com/artsy/eidolon. Они создают модели представления внутри контроллеров представления (как «lazy var'), но они предоставляют параметры в' prepareForSegue' через явно развернутые опции. – Anton
err ... через неявно развернутые опции. – Anton