视图控制器及生命周期

import "AppDelegate.h"

import "RootViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    // 创建视图控制器对象
    RootViewController rootVC = [[RootViewController alloc]init];
    // 将创建好的视图控制器设置为window的根视图控制器
    [self.window setRootViewController:rootVC];
    /
    *

    • 模拟window类中,setRootViewController
      -(viod) setRootViewController:(UIViewContorller) rootVC{
      if(_rootViewController != rootVC ){
      [_rootViewController release];
      _rootViewController = [rootVC retain];
      }
      [self addSubView:_rootViewController.view];
      }
      */
      return YES;
      }

import "RootViewController.h"

@interface RootViewController ()
@end
@implementation RootViewController

// 创建视图控制器的时候,系统会帮我们创建一个和屏幕一样宽高的视图(view)作为视图控制器的属性
// 加载视图控制器自带的视图 当使用到该视图控制器自带的view时(调用view属性的get方法的时候),才会调用loadview方法创建该view

// 视图加载
-(void)loadView{
NSLog(@"%s",func);
// [super loadView];// 如果我们使用自定义的视图,就不要调用[super loadview]
// 自定义视图 (自定义的视图frame的尺寸创建时已经给定根屏幕一样的宽高,所以无法修改)
UIView *customView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, CGRectGetWidth([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds))];
customView.backgroundColor = [UIColor redColor];
// 将自定义的视图赋给当前视图控制器的view
self.view = customView;
}

// 创建label的方法
-(UILabel *)creatLabel{
UILabel *label = [[UILabel alloc]initWithFrame:CGRectZero];
label.text = @"title";
label.tag = 1000;
return label;
}

// 视图加载完毕

  • (void)viewDidLoad {
    NSLog(@"%s",func);
    [super viewDidLoad];
    // self.view.backgroundColor = [UIColor yellowColor];

    // Do any additional setup after loading the view.
    }

// 视图即将出现
-(void)viewWillAppear:(BOOL)animated{
NSLog(@"%s",func);
[super viewWillAppear:animated];
}

// 视图已经出现
-(void)viewDidAppear:(BOOL)animated{
NSLog(@"%s",func);
[super viewDidAppear:animated];
}

// 视图即将消失
-(void)viewWillDisappear:(BOOL)animated{
NSLog(@"%s",func);
[super viewWillDisappear:animated];
}

// 视图已经消失
-(void)viewDidDisappear:(BOOL)animated{
NSLog(@"%s",func);
[super viewDidDisappear:animated];
}

// 视图被释放掉
-(void)dealloc{
// ARC下dealloc方法可以被重写,但是不能在内部使用[super dealloc]
// [super dealloc];
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *7月8日上午 N:Block :跟一个函数块差不多,会对里面所有的内容的引用计数+1,想要解决就用__block...
    炙冰阅读 7,317评论 1 14
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 8,927评论 2 4
  • 刚才又把一个朋友的聊天记录看了一下,发现感触很大。可是当时却对他很反感。当时正处于烦躁期,情绪波动很大,需要...
    冷冷123456阅读 4,260评论 0 1
  • 今年的里约奥运会,如火如荼。当然,每届的奥运会都这样。 在观看比赛之余,隐隐约约有个问题一直萦绕在我的脑海。我一直...
    木槿Isabella阅读 3,424评论 0 0
  • 把一切精力、一切才能都集中到一个目标,发挥出所有的潜力向目标直线进军,全力以赴地去实现它,这才是时间管理的最大意义。
    文子力阅读 1,111评论 0 0