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
原创粉丝点击