W e S D
0 1

[Objective-C] 018_UIView(下)

UIView对象在创建后,由UIViewController进行维护和管理。整个生命周期分为:创建视图,显示视图,隐藏视图和释放视图,在UIViewController中都有对应的方法。

1. init (UIViewController对象初始化,初始化数据)

- (instancetype)init
{
    self = [super init];
    if (self) {
        _myTestView = [[TestView alloc] init];
        self.myTestView = _myTestView;
    }
    return self;
}

2. loadView (从nib载入视图 ,通常这一步不需要去干涉。除非没有使用xib文件创建视图)

- (void)loadView {
    [super loadView];
    NSLog(@"正在加载view...");
}

3. viewDidLoad (视图载入完成,通常在这里进行自定义数据或者创建其他控件,只在app刚开始加载的时候调用一次)

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"view加载完成");
    [self.view addSubview:_myTestView];
}

4. viewWillAppear (视图将出现在屏幕之前,这个视图马上就会被显示在屏幕上了) 

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"view马上就要显示了...");
}

5. viewDidAppear (视图已在屏幕上显示)

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    NSLog(@"view已经显示了...");
}

6. viewWillDisappear (视图即将被从屏幕上移除之前执行)

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    NSLog(@"view将要移除了");
}

7. viewDidDisappear (视图已经被从屏幕上移除,看不到这个视图了)

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    NSLog(@"view已经移除了");
}

8. dealloc (viewCotroller销毁时调用,通常对在init和viewDidLoad中创建的对象进行释放)

- (void)dealloc
{
    [_myTestView release];
    [super dealloc];
}

 

ViewController.m

#import "ViewController.h"
#import "TestView.h"

@interface ViewController ()

@end

@implementation ViewController

- (instancetype)init
{
    self = [super init];
    if (self) {
        _myTestView = [[TestView alloc] init];
        self.myTestView = _myTestView;
    }
    return self;
}

- (void)loadView {
    [super loadView];
    NSLog(@"正在加载view...");
}

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"view加载完成");
    [self.view addSubview:_myTestView];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"view马上就要显示了...");
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    NSLog(@"view已经显示了...");
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    NSLog(@"view将要移除了");
}

- (void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    NSLog(@"view已经移除了");
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc
{
    [self.myTestView release];
    [super dealloc];
}

@end

 

AppDelegate.m ,TestView.h ,TestView.m

#import "ViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    //设置window背景色
    self.window.backgroundColor = [UIColor clearColor];
    //让window显示
    [self.window makeKeyAndVisible];
    UIViewController *root = [[ViewController alloc] init];
    self.window.rootViewController = root;
    [root release];
    
    return YES;
}

-(void)dirHome{
    NSString *dirHome=NSHomeDirectory();
    NSLog(@"app_home: %@",dirHome);
}

@end

////////////////////////     TestView.h     /////////////////////
#import <UIKit/UIKit.h>

@interface TestView : UIView

@end

////////////////////////     TestView.m     /////////////////////
#import "TestView.h"

@implementation TestView

- (instancetype)init
{
    self = [super init];
    if (self) {
        NSLog(@"view始化...");
    }
    return self;
}

@end

测试结果:

2015-08-24 22:10:51.157 Attendance[34363:1490584] view始化...

2015-08-24 22:10:51.159 Attendance[34363:1490584] 正在加载view...

2015-08-24 22:10:51.159 Attendance[34363:1490584] view加载完成

2015-08-24 22:10:51.159 Attendance[34363:1490584] view马上就要显示了...

2015-08-24 22:10:51.428 Attendance[34363:1490584] view已经显示了...

 

 

本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 

转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4756021.html

posted @ 2015-08-24 22:11  SD.Team  阅读(147)  评论(0)    收藏  举报