UI基础知识 -- MVC设计模式 和 试图控制器
来源:互联网 发布:关闭淘宝客佣金代扣款 编辑:程序博客网 时间:2024/06/05 21:10
MVC
MVC是一种设计模式
好处: 让视图(View)可以复用
应用:
1.视图层(view) 只写视图的布局
2.数据模型层(model) 只写数据的结构(只写NS开头的)
3.控制器(controller) 负责逻辑部分(例如从model里取数据 然后去更改视图的显示)
MVC把工程中的代码模块化(降低耦合度) 尽量让视图部分的代码可以复用
一般一个视图控制器控制一个页面
视图控制器
如何为window创建根视图控制器
视图控制器会自带一个view 如果要更改这个view 就必须重写loadView方法
在.m
中实现这个方法:
// 这个方法是加载视图的 并且加载的是自带的那个view- (void)loadView{// 用上午的loginView替换控制器的view (当然要引入头文件) LoginView *loginView = [[LoginView alloc] initWithFrame:[UIScreen mainScreen].bounds]; loginView.tag = 10000;// 帮系统给self.view 赋值 self.view = loginView; [loginView release];}
然后在AppDelegate.m
引入RootViewController.h
头文件
为self.window.rootViewController
设置根视图控制器
当然需要先创建根视图控制器
RootViewController *rootVC = [[RootViewController alloc] init];
最后进行赋值:
self.window.rootViewController = rootVC; [rootVC release];
控制器的view加载完后
在控制器view加载完后 可以对view上的控件进行设置
// 视图已经加载完成- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // 更改一下自身view的颜色 self.view.backgroundColor = [UIColor grayColor]; // 控制器写逻辑部分 // 给button添加一个点击方法 // 由于self.view为UIView类型 要想使用子类的属性必须要将UIView类型转化为LoginView类型 LoginView *loginView = (LoginView *)self.view; [loginView.loginButton addTarget:self action:@selector(loginButtonClick:) forControlEvents:UIControlEventTouchUpInside]; // 给Textfield设置代理 loginView.userNameLTView.textField.delegate = self; loginView.passWordLTView.textField.delegate = self;}// loginButton的点击方法- (void)loginButtonClick:(UIButton *)button{ NSLog(@"我是登陆按钮");}-(BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES;}
0 0
- UI基础知识 -- MVC设计模式 和 试图控制器
- UI基础第一节试图控制器(MRC)
- UI基础知识 -- 容器视图控制器
- UI设计 视图控制器
- 控制器动作和模型。试图ROR
- 进击的KFC:UI(八)导航试图控制器,传值
- ThinkPHP MVC模式、URL访问控制器和调试模式
- Mvc中如何根据控制器来创建试图?
- 【MVC】获取项目中所有的控制器-试图
- MVC设计模式 和 MVVC设计模式
- 三层架构(DAL/BLL/UI)和MVC设计模式的关系
- MVC设计模式和Serverlet
- MVC设计模式(模型-视图-控制器)设计模式介绍(ZZ)
- MVC设计模式(模型-视图-控制器)设计模式介绍(ZZ)
- iso-开发基础知识-2- MVC 设计模式
- 前端控制器设计模式
- 前端控制器设计模式
- MVC模式(基础知识)
- 小项目跟踪记录
- sed命令用于删除
- HTTP GET packet sniffer in Scapy
- hibernate的一对一主键双向映射关系和外键双向映射关系(一)
- 自定义导航栏返回按钮和隐藏返回两个字
- UI基础知识 -- MVC设计模式 和 试图控制器
- 【Android】不要在Application对象中缓存数据!
- 【Android】问题记录
- Android安全专项测试之反编译
- C语言之打印菱形
- ulimit -c 999出现 -bash: ulimit: core file size: cannot modify limit: Operation not permitted的解决办法
- 计算机主线
- #ifdef _cplusplus(转)
- mfc中使用Tab Control控件