码迷,mamicode.com
首页 > Web开发 > 详细

MVC三层架构

时间:2015-07-03 00:18:18      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:mvc   window   设置   dealloc   super   

新建ViewController类 继承 UIViewController

AppDelegate.m

#import "ViewController.h"
#pragma mark - 重写
#pragma mark dealloc
- (void)dealloc
{
    [_window release];
    [super dealloc];
}

    //设置window
    self.window = [[[UIWindow alloc] init] autorelease];
    self.window.frame = [UIScreen mainScreen].bounds;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    // 设置根视图控制器
    ViewController *RootVC = [[ViewController alloc] init];
    self.window.rootViewController = RootVC;
    [RootVC release];

新建RootView类 继承 UIView

RootView.m里面写


#pragma mark - 重写
#pragma mark dealloc
- (void)dealloc
{
    [_userName release];
    [_userPWD release];
    [_loginButton release];
    [_registerButton release];
    [super dealloc];
}



- (instancetype)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self addAllViews];
    }
    return self;
}


- (void)addAllViews
{
    self.backgroundColor = [UIColor whiteColor];

    self.userName = [[LTView alloc] initWithFrame:CGRectMake(30, 50, 260, 40) text:@"用户名" placeHolder:@"请输入用户名" isSecure:NO];
    [self addSubview:_userName];
    [_userName release];


    self.userPWD = [[LTView alloc] initWithFrame:CGRectMake(30, 100, 260, 40) text:@"密码" placeHolder:@"请输入密码" isSecure:YES];
    [self addSubview:_userPWD];
    [_userPWD release];


    self.loginButton = [UIButton buttonWithType:UIButtonTypeSystem];
    self.loginButton.frame = CGRectMake(40, 160, 80, 40);
    [self.loginButton setTitle:@"登录" forState:UIControlStateNormal];
    [self addSubview:self.loginButton];


    self.registerButton = [UIButton buttonWithType:UIButtonTypeSystem];
    self.registerButton.frame = CGRectMake(150, 160, 80, 40);
    [self.registerButton setTitle:@"注册" forState:UIControlStateNormal];
    [self addSubview:self.registerButton];  
}

ViewController.m 里面写

#pragma mark - 重写
#pragma mark dealloc
- (void)dealloc
{
    [_rootView release];
    [_userName release];
    [_userPWD release];
    [super dealloc];
}

// 只写这三句话
- (void)loadView
{
    self.rootView = [[RootView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.view = self.rootView;
    [_rootView release];
}

模拟内存警告

#pragma mark - 模拟内存警告
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];

    // 如果控制器执行了 viewDidLoad 方法(进行了加载过程),并且当前控制器控制的 view 没有显示在 window 上,则对控制器控制的 view 进行释放
    if ([self isViewLoaded] && self.view.window == nil) {
        self.view = nil;
    }

    NSLog(@"收到内存警告");
    // Dispose of any resources that can be recreated.
}

页面跳转

- (void)viewDidLoad {
    [super viewDidLoad];


    [self.rootView.loginButton addTarget:self action:@selector(loginButtonDidClicked:) forControlEvents:UIControlEventTouchUpInside];

    [self.rootView.registerButton addTarget:self action:@selector(registerButtonDidClicked:) forControlEvents:UIControlEventTouchUpInside];
}

#pragma mark - loginButton 点击事件
- (void)loginButtonDidClicked:(UIButton *)sender
{
    NSLog(@"点击了登录");

}

- (void)registerButtonDidClicked:(UIButton *)sender
{
    RegisterViewController *registerVC = [[RegisterViewController alloc] init];
    // 模拟推出页面,进入下一级一面
    [self presentViewController:registerVC animated:YES completion:nil];
}


- (void)viewDidLoad {
    [super viewDidLoad];
    [self.rooView.backButton addTarget:self action:@selector(backButtonDidClicked:) forControlEvents:UIControlEventTouchUpInside];

}

// 页面跳转
-(void)backButtonDidClicked:(UIButton *)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

MVC三层架构

标签:mvc   window   设置   dealloc   super   

原文地址:http://blog.csdn.net/yadong_zhao/article/details/46732389

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!