MVC三層架構,mvc三層
建立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];}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。