一、MVC设计模式
1.1 MVC是什么
是一个大型综合的设计模式。
设计模式是解决某一类问题的一种最优的办法。
1.2 为什么要用设计模式
提高程序的可重用、可扩展性、可维护性。
苹果的系统大量的使用了设计模式。
1.3 MVC简介
M:Model 模型
处理数据和业务逻辑、保存数据、网络通信…业务计算。
V:View 视图 (xib)
给用户提供界面显示,接受用户输入。
C:Controller 控制器
控制程序的流程及跳转,协调View和Midel之间的工作。
课程安排:
control&controller
view
model
1.4 MVC之间的关系
CV是可以直接沟通的:
C —>V(IBOutlet)
V —>C(TargetAction,IBAction,Delegate)
CM是可以互相沟通的:
M不能访问C的,一般将C是访问M,M将信息传递给C,M层一般是被动的
C—>M 通过属性的方式或发送消息关联在一起的。
VM不能互相沟通,不可以交互的
1.5 多MVC(多界面开发)
应用程序中有多个界面,而每一个界面就是一个MVC,所以说多界面开发就是多MVC开发。
操作步骤:
a.创建两个VC类
b.创建一个VC对象,并设为根属兔控制器
c.添加了一个按钮,并添加了相应的时间方法
1>创建第二个VC对象
2>[self presentViewController:vc2 animated:YES completion:nil]
d.在第二个VC对象中,添加一个按钮和相应的事件
[self dismissViewControllerAnimated:YES completion:nil];
视图控制器的生命周期:
1>第一个界面的生在appdelegate中
第二个界面的生在第一个界面中的事件方法中
2>A界面跳转的时候,创建新的B界面,但原来的A界面没有销毁.从B界面返回A界面,原有的B界面就销毁了。
根视图控制器永远不会销毁。
练习:
如果登陆成功 就跳转第二个界面 如果失败在原有界面弹出UIAlerView显示登陆失败.
1.6 传值
将VC1中的数据传给VC2中。
使用步骤:
VC1:
a.在界面跳转之前,创建VC2对象
b.并传值给VC2.属性(model)
备注:传值的方式:属性、方法、自定义方法(事件源)
VC2:
a.生命一个属性(model),接收VC1传来的值。
b.第二个界面显示的时候(viewDidload)
将model的数据->显示(lable)
关于声明属性类型的情况:
@property(nonatomic,assign)int x;//基本类型的用assign
@property(nonatomic,copy)NSString *name;//字符串
@property(nonatomic,strong)TRViewController1 *student;//对象
@property(nonatomic,weak)UILabel *label;//控件