1、MVVM的大体方向
关于mvvm的由来,笔者认为:
model(M)
view:viewcontroller一同完成了界面的Ui的逻辑控制(V)
viewmodel(VM)
![](https://img.haomeiwen.com/i1281458/54a2b1c8fdadc2c0.png)
2、MVVM实践
a、骨架
![](https://img.haomeiwen.com/i1281458/d44e474a35e9b3d5.png)
b、衔接
//AppDelegate.m
@property (nonatomic, strong) ModelServices *services;
@property (nonatomic, strong) NavStack *navStack;
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.services = [[ModelServices alloc] init];
self.navStack = [[NavStack alloc] initWithServices:self.services];
//TabBarviewModel是MYRootTabBarController的viewModel,包含了tatbar中每个tab的viewModel
TabBarviewModel * tabBarviewModel = [[TabBarviewModel alloc] initWithVCName:@"MYRootTabBarController"];
tabBarModel.hiddenNavBar = YES;
MYRootTabBarController *tabBarController = [[MYRootTabBarController alloc] initWithViewModel:tabBarModel];
self.rootVC = [[MYNavigationController alloc] initWithRootViewController:tabBarController];
[self.navStack pushNavigationController:self.rootVC];
self.window.rootViewController = self.rootVC;
}
网友评论