zoukankan      html  css  js  c++  java
  • Swift

    在AppDelegate中有如下两个方法要注意:
    applicationDidEnterBackground()  当应用进入后台时起作用
    applicationWillTerminate()  当应用终止的时候起作用

    有了这两个方法,我们就可以对程序数据进行保护。
    比如当应用崩溃,内存不足被系统终止,程序在后台呆太久被终止掉时,可以通过这两个方法对操作数据进行保存,以免数据丢失。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import UIKit
     
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
     
        var window: UIWindow?
     
        func application(application: UIApplication,
            didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            return true
        }
       
        //当应用进入后台时其作用
        func applicationDidEnterBackground(application: UIApplication) {
           saveData()
        }
         
        //当应用终止的时候起作用
        func applicationWillTerminate(application: UIApplication) {
            saveData()
        }
         
        func saveData(){
            //获取导航控制器
            let navigation = self.window?.rootViewController as UINavigationController
            //获取导航控制器的根视图控制器
            var controller:ViewController = navigation.viewControllers.first! as ViewController
            //执行ViewController的自定义数据保存方法
            controller.saveData()
        }
         
        func applicationWillResignActive(application: UIApplication) {
        }
     
        func applicationWillEnterForeground(application: UIApplication) {
        }
     
        func applicationDidBecomeActive(application: UIApplication) {
        }
    }
    注意:self.windows表示storyboard中的UIWindow对象,也是所有视图的总容器。在iOS应用中只有一个UIWindow对象。
    如果我们给导航控制器勾选了is Initial View Controller属性,UIWindow对象的rootViewController获取的就是勾选了is Initial View Controller属性的导航控制器。
  • 相关阅读:
    Android 动画-alpha(渐变透明度动画效果)
    Memento(备忘录)
    Mediator(中介者)
    Iterator(迭代器)
    Command(命令)
    Chain of Responsibility(责任链)
    Template Method(模板方法)
    Interpreter(解释器)
    Proxy(代理)
    Flyweight(享元)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4841077.html
Copyright © 2011-2022 走看看