IOS之【ios程序的生命周期】
来源:互联网 发布:yap—yum的体位 编辑:程序博客网 时间:2024/05/21 17:59
OneAppDelegate.m文件
#import “OneAppDelegate.h"
#import “OneViewController.h"
@implementation OneAppDelegate
- (void)dealloc
{
[_windowrelease];
[_viewControllerrelease];
[superdealloc];
}
#pragma mark 在应用程序启动完毕的时候调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//在这里隐藏状态栏,会让程序全屏显示
// application.statusBarHidden = YES;
// 初始化一个窗口
self.window = [[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]]autorelease];
//初始化一个控制器
// OneViewController.xib
// bundle:可以理解为是文件夹,传入nil代表着项目文件夹
// 如果nibName为nil,默认会去加载与控制器同名的xib文件
// self.viewController = [[[OneViewController alloc] initWithNibName:@“OneViewController123" bundle:nil] autorelease];
//调用init方法创建控制器的时候,它会默认加载与控制器同名的xib文件
//如果找不到对应的xib文件,就会默认创建一个空的UIView,默认背景颜色是黑色
//实际上,创建好控制器之后,并不会去马上初始化内部的view
//因为控制器内部的view是延迟加载的,用到时再加载
self.viewController = [[[OneViewControlleralloc]init] autorelease];
//只要你访问了控制器的view,才会开始创建它内部的view
//所以下面这句代码会导致初始化控制器的view,而且创建完毕后会调用控制器的viewDidLoad方法
//UIView *view = self.viewController.view;
//设置窗口的根控制器
self.window.rootViewController =self.viewController;
//最好设置窗口的根控制器,不要直接添加控制器的view到窗口中
//因为控制器还要接收一些窗口传递过来的系统事件,比如屏幕旋转
// [self.window addSubview:self.viewController.view];
// 让window显示出来,并且成为主窗口
// 窗口显示出来后就会将根控制器的View到UIWindow中
[self.windowmakeKeyAndVisible];
return YES;
}
OneViewController.m文件
#import “OneViewController.h"
@interface OneViewController ()
@end
@implementation OneViewController
- (void)click {
UIApplication *app = [UIApplicationsharedApplication];
//设置应用程序图标上的红色数字
app.applicationIconBadgeNumber =5;
// 隐藏状态栏
// app.statusBarHidden = YES;
// 显示联网状态
//如果已经显示,就隐藏;如果已经隐藏,就显示
//这里只是显示一个状态而已,并没有表示我们的程序真的在联网
app.networkActivityIndicatorVisible = !app.isNetworkActivityIndicatorVisible;
}
#pragma mark 这个方法是用来加载内部的view
// 父类的loadView内部是这样实现的:如果有跟控制器相关联的xib文件,就会通过xib文件创建内部的view,如果没有,就会创建一个空白的view(默认背景颜色是黑色)
// 苹果设计这个方法的目的就是给我们自定义控制器内部的view
// 如果我们需要自定义控制器的view,就不需要调用父类的loadView方法
- (void)loadView {
// [super loadView];
// iPhone坐标系是320 x 480(点坐标系)
// 获取屏幕的尺寸
CGRect bounds = [UIScreenmainScreen].bounds;
// 屏幕的宽度
CGFloat width = bounds.size.width;
// 屏幕的高度
CGFloat height = bounds.size.height;
// CGRect frame = CGRectMake(0, 20, width, height - 20);
// applicationFrame就是控制器内部view默认的frame
// {x=0, y=20, width=320, height=460}
CGRect frame = [UIScreenmainScreen].applicationFrame;
NSLog(@"%@",NSStringFromCGRect(frame));
// 通过代码初始化我们的view
self.view = [[[UIViewalloc]initWithFrame:frame]autorelease];
// 设置view的背景颜色为红色
self.view.backgroundColor = [UIColorredColor];
}
#pragma mark 当内部的view加载完毕之后就会调用
// 一般会在这里添加一些子视图、渲染数据
// 无论是通过xib还是代码创建view,总之view创建完毕后就会调用这个方法
- (void)viewDidLoad
{
[superviewDidLoad];
NSLog(@"viewDidLoad,view被加载完毕");
}
#pragma mark 当内部的view因为内存警告而被系统自动回收的时候调用
- (void)viewDidUnload {
[superviewDidUnload];
}
#pragma mark 当内部的view被添加到视图层次结构(也就是被添加到窗口中时)中就会调用
// 如果是重写生命周期方法,一定要调用回父类的方法
- (void)viewDidAppear:(BOOL)animated {
[superviewDidAppear:animated];
NSLog(@"viewDidAppear,控制器的view被添加到屏幕");
}
#pragma mark 当内部的view从视图层次结构(也就是从窗口中移除时)中移除就会调用
- (void)viewDidDisappear:(BOOL)animated {
[superviewDidDisappear:animated];
}
#pragma mark 当内部的view即将被添加到屏幕的时候调用
- (void)viewWillAppear:(BOOL)animated {
[superviewWillAppear:animated];
NSLog(@"viewWillAppear,view即将被添加到窗口中");
}
#pragma mark 当内部的view即将从屏幕中移除的时候调用
- (void)viewWillDisappear:(BOOL)animated {
[superviewWillDisappear:animated];
}
#pragma mark 接收到内存警告
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
//一般会在这里回收内存
}
@end
- IOS之【ios程序的生命周期】
- iOS程序的生命周期
- iOS 程序的生命周期
- iOS程序的生命周期
- iOS 监听程序的生命周期
- iOS之Application的生命周期
- iOS 之UIViewController的生命周期
- iOS 之UIViewController的生命周期
- iOS之viewController的生命周期
- ios程序生命周期。。。
- iOS程序生命周期
- IOS程序生命周期
- iOS程序生命周期详解
- ios程序入口...生命周期
- iOS程序生命周期
- IOS程序生命周期
- iOS开发中程序的生命周期
- 程序猿们,iOS中是有生命周期的
- java学习笔记(五)——网络编程
- OC之【NSObject使用】
- 下辈子,无论爱与不爱,都不会再见
- 使用ZbarSDK扫描二维码时乱码情况解决(解决乱码)
- ubuntu tomcat 自启动
- IOS之【ios程序的生命周期】
- C语言中printf格式化输出函数
- There are no datanodes in the cluster
- 求二进制数中的1的个数
- 虚拟机+linux+nginx环境+php+mysql+magento安装 lanmp
- LightOJ 1096 nth Term (构造矩阵)
- 转:30岁以下创业新贵:我们是这样带队伍的
- 干干净净的傅雷
- Linux编程经典书籍