1.UIApplicationState
应用的三个状态
typedef NS_ENUM(NSInteger, UIApplicationState) {
UIApplicationStateActive,
// 应用在前台,却不响应事件,发生在前后台切换时候、有电话进来等场景
UIApplicationStateInactive,
UIApplicationStateBackground
};
1.冷起
// 1.
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(nullable NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions;
// 2.初始化window,设置rootViewController
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions;
// 3.
- (void)applicationDidBecomeActive:(UIApplication *)application;
2.进入后台
‘’‘ // 1.
- (void)applicationWillResignActive:(UIApplication *)application; // 2.
- (void)applicationDidEnterBackground:(UIApplication *)application; ’‘’
3.热启
// 1.
- (void)applicationWillEnterForeground:(UIApplication *)application;
// 2.
- (void)applicationDidBecomeActive:(UIApplication *)application;
4.通过URLScheme打开
/*
* url:Scheme,里面有其他App传递过来的参数
* 从iOS9.0以后(例如iOS9.1)开始支持
**/
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options;
/*
* 仅iOS9.0以前(例如iOS8)支持。iOS9及iOS9以后(例如iOS9.1)已经废弃。
**/
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation
5.通过Spotlight/Universal Link打开
/*
* userActivity:activityType为NSUserActivityTypeBrowsingWeb,代表是通过Universal Link打开的
**/
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler;
2.UIViewController
1.A push B
// 1.B
- (void)viewDidLoad;
// 2.A
- (void)viewWillDisappear:(BOOL)animated;
// 3.B
- (void)viewWillAppear:(BOOL)animated;
// 4.A
- (void)viewDidDisappear:(BOOL)animated;
// 5.B
- (void)viewDidAppear:(BOOL)animated;
2.A present B
// 1.B
- (void)viewDidLoad;
// 2.A
- (void)viewWillDisappear:(BOOL)animated;
// 3.B
- (void)viewWillAppear:(BOOL)animated;
// 4.B
- (void)viewDidAppear:(BOOL)animated;
// 5.A
- (void)viewDidDisappear:(BOOL)animated;