【IOS 开发学习总结-OC-39】★★ios开发之 MVC 模式
来源:互联网 发布:andrew marc牌子知乎 编辑:程序博客网 时间:2024/04/30 12:50
MVC——Mode(模型),View(视图),controller(控制器)这三部分以最小的耦合协同工作,提高应用的可扩展性和可维护性。MVC是所有面向对象程序设计语言都应该遵守的规范。
经典的 MVC 模式
经典的 mvc模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图,反之也是如此。——详细的说就是:每个模型对应一系列的视图列表,这种对应关系通常通过注册来完成——把多个视图注册到同一个模型),模型发生改变时,模型向所有注册过的视图发送通知,然后,视图从对应的模型中获取嘻嘻,完成视图显示的更新。
MVC模式示意图:
IOS 中 MVC细解:
- model 组件:通常是一些普通的类。这些类可保存少量应用程序状态数据。——当应用程序状态数据较多时,可以考虑用 core data构建数据模型。
- 视图组件:主要使用 interface builder 创建视图组件。——某些情况下,可用代码创建,修改界面和扩展视图控件。
- 控制器组件:通常由程序开发者自己开发的类来充当。大部分时候,控制器组件都会继承 UIViewController 基类,通过继承它,可让控制器类获取大量功能。
UIViewController控制器
UIViewController类包含如下常见的需要重写的方法:
1. - (void)viewDidLoad:
——控制器管理的视图被装载完成后,系统自动调用该方法。注意:重写该方法时,记得用[super viewDidLoad];
代码调用UIViewController基类的viewDidLoad方法。
2. - (void)didReceiveMemoryWarning
——该方法不需程序员自己调用。如果需要在系统内存紧张时释放部分内存,可通过重写该方法来释放那些暂时不用的内存。——重写时不要忘记通过[super didReceiveMemoryWarning]
方法。
3. - (void)viewWillAppear:(BOOL)animated
——视图要显示出来时,系统自动调用该方法;重写该方法的格式注意点看下面的重要说明。
4. - (void)viewDidAppear:(BOOL)animated
——视图显示出来后,自动调用该方法。重写该方法的格式注意点看下面的重要说明。
5. - (void)viewWillDisappear:(BOOL)animated
——当控制器管理的视图将要隐藏或被移出窗口时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
6. - (void)viewDidDisappear:(BOOL)animated
——当控制器管理的视图已经隐藏或被移出窗口时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
7. - (void)viewWillLayoutSubviews
——当控制器管理的视图将要排列它包含 的所有子视图时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
8. - (void)viewDidLayoutSubviews
——当控制器管理的视图已经排列它包含 的所有子视图时,系统自动调用该方法。重写该方法的格式注意点看下面的重要说明。
重要说明:
上面关于UIViewController类的要重写的方法。要注意的是:重写方法的时候不要忘了通过
[super xxxxx:YES];
的代码格式调用UIViewController基类的相关方法。其中xxxxx
是指该方法的方法名。
MVC 模式与观察者模式的区别
它们2者很相似,但是有着这样的区别:
观察者模式下,观察者和被观察者可以是两个互相对等的对象。但对 MVC思想(模式)而言,被观察者往往只是单纯的数据体,而观察者则是单纯的视图组件。
- 【IOS 开发学习总结-OC-39】★★ios开发之 MVC 模式
- 【IOS 开发学习总结-OC-42】★ios开发——UI控件之UIControl基类
- 【IOS 开发学习总结-OC-50】★ios开发之UI控件——UIToolBar(工具栏)
- 【IOS 开发学习总结-OC-32】★OC之foundation 框架——谓词(NSPredicate)
- (iOS开发总结)MVC模式
- iOS开发模式MVC学习
- iOS 之 MVC 开发模式
- IOS之MVC开发模式
- iOS 之 MVC 开发模式
- 【IOS 开发学习总结-OC-51】★★★ios开发之UI控件——UITableView 与UITableViewCell
- 【IOS 开发学习总结-OC-45】★★ios开发之UI控件——UISegmentedControl与UIImageView
- 【IOS 开发学习总结-OC-48】★★ios开发之UI控件——UIDatePicker与 UIPickerView
- 【IOS 开发学习总结-OC-49】★★ios开发之UI控件——UIStepper与UIWebView
- 【IOS 开发学习总结-OC-47】★ios开发之UI控件——UIAlertView与 UIActionSheet
- 【IOS 开发学习总结-OC-38】★ios入门 ——ios项目基础之知识点拾贝
- 【IOS 开发学习总结-OC-17】★★objective-c面向对象之——多态
- 【IOS 开发学习总结-OC-9】★ objective-c面向对象之——方法
- 【IOS 开发学习总结-OC-57】★UI之UICollectionView 与UICollectionViewController
- iOS 被键盘遮挡时,带有textfield的tableview自动上移
- 请问两个div之间的上下距离怎么设置
- 抓取网页信息并获取生成xml文件(以网页彩票数据为例)
- android中actionBar中字体颜色设置
- LintCode:最小路径和
- 【IOS 开发学习总结-OC-39】★★ios开发之 MVC 模式
- webrtc sip html5
- ZOJ 3778 Talented Chef(计算器模拟)
- kafka深度解析
- docker搭建简单web服务
- MFC消除视图闪烁
- 自定义超简单SearchView搜索框
- java入门第一天 基本介绍 环境配置 小小测试(上)
- 驱动程序收到意外的登录前响应。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接。该驱动程序只能与 SQL Server 2000 或更高版本一起使