UIViewController ApplicationSequence UI-03
注意: NSLog(@"%s %d",__FUNCTION__,__LINE__); //打印程序方法的执行过程,
1、UIApplication 应用程序类型,一个程序只需要一个UIApplication对象,一个工程只能制作一个应用程序
//应用程序正在进行加载的时候调用此方法,此方法的重要的作用,创建window对象,并将window设置主窗口且使其可见
//所以当你要在应用程序上显示其他的内容要把添加到此方法中
#pragma mark 应用程序开始加载状态
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
self.window.backgroundColor = [UIColor whiteColor];
[ self.window makeKeyAndVisible];
}
2、 #pragma mark 应用程序将要取消活跃状态
//触发的因素:来电、短信,退出应用程序,手动进入后台
//可以使用此方法暂停正在运行的任务,或者是让定时器暂停,或者暂停游戏
//可以使用此方法暂停正在运行的任务,或者是让定时器暂停,或者暂停游戏
- (void)applicationWillResignActive:( UIApplication *)application {
NSLog(@"%s %d",__FUNCTION__,__LINE__);
}
3、 #pragma mark 程序已经进入后台
//用这个方法可以用来释放共享资源,存储用户信息,使定时器无效,存储用户当前状态下的信息,已备下次恢复;
//如果你的应用程序支持后台运行,当用户退出的时候,这个方法将被替代applicationWillTerminate:
//如果你的应用程序支持后台运行,当用户退出的时候,这个方法将被替代applicationWillTerminate
- (void)applicationDidEnterBackground:( UIApplication *)application {}
4、 #pragma mark 应用程序即将进入前台
//唤醒进入后台时的任务
//唤醒进入后台时的任务
- (void)applicationWillEnterForeground:( UIApplication *)application {}
5、 #pragma mark 应用程序已经处于活跃状态,应用程序已经在屏幕上运行了
//重启应用程序中没开启的任务或者程序程序进入后台时被暂停的任务开启,如果应用程序之前不再后台 也可以刷新一下用户界面(如网易新闻第二天打开不是第一天的新闻,已被刷新)
//重启应用程序中没开启的任务或者程序程序进入后台时被暂停的任务开启,如果应用程序之前不再后台
- (void)applicationDidBecomeActive:( UIApplication *)application {}
7、重点概念
main.m 程序的入口
#import
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
————————————————————————————————————————
8、UIViewController 继承自UIResponder ,是一个专门用来管理视图的一个类,只能用来管理单视图,是一个单是图控制器
例子:
新建一个根管理器的子视图控制器来重写方法
RootViewController.h 将其头文件引入AppDelegate.m文件
RootViewController.m
下面是几种方法实现:
//视图控制器的指定初始化方法,就是无论你调用哪个初始化方法初始化一个视图控制器对象,都会走的那个方法就叫做指定初始化方法
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
}
——————————————————————————————
1、加载发根视图的触发的方法
//如果要是重写了loadView方法,第一种必须是实现[super loadView]
//第二种自定义个视图赋值给视图控制器自身所带的视图View
- (void)loadView{
// [super loadView];//父类对该方法的实现是加载一个UIView对象,视图控制器自身所带的View就是由此方法创建出来的
//自定义视图控制器自身所带的视图View
UIView *newview = [[UIView alloc]initWithFrame:[UIScreen mainScreen].bounds];
self.view = newview;
//第二种自定义个视图赋值给视图控制器自身所带的视图View
- (void)loadView{
//
//自定义视图控制器自身所带的视图View
}
——————————————————————————————————
2、当发现View自身所带View为nil会再去调用loadView,直到发现view不再为nil就不再调用loadView方法
//当视图控制器自带的View加载完成时触发
- (void)viewDidLoad {
//当视图控制器自带的View加载完成时触发
- (void)viewDidLoad {
}
———————————————————————————————
3、当内存出现警告时自动调用此方法
}
———————————————————————————————————
4、当设备发生旋转时,当前界面不发生变化,就意味着不支持旋转
- (BOOL)shouldAutorotate{
return YES;
}
//设置界面设置的旋转方向
}
//设置界面设置的旋转方向
-(NSUInteger)supportedInterfaceOrientations{
//当旋转屏幕的时候触发,ios8之后才有效
//- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator{
// //size将要旋转到的屏幕的尺寸
//- (void)viewWillTransitionToSize
//
// NSLog(@"%@",NSStringFromCGSize(size));
}}
——————————————————————————————————————————
欢迎学习本文,未经博主允许,禁止转载!