IOS生命周期详解

作者: yi蜀黍 | 来源:发表于2017-06-27 09:52 被阅读525次

    懂ios生命周期,让我们更好的投入到开发当中,让我们开发更加高效。

    新建ios项目,我先开始从应用程序生命周期说起。打开AppDelegate.swift文件。这是我们构建ios项目的委托。

    //应用程序生命周期
    
    //此方法在应用程序初始化完成后准备调用与准备与用户交互时调用
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {}
    //程序将要挂起时候(锁屏将要接电话)
    func applicationWillResignActive(_ application: UIApplication) {}
    //应用程序退到后台时候调用(单击home)
    func applicationDidEnterBackground(_ application: UIApplication) {}
    //应用程序将要进入前台时候(被激活)
    func applicationWillEnterForeground(_ application: UIApplication) {}
    //程序恢复的时候
    func applicationDidBecomeActive(_ application: UIApplication) {}
    //程序将要关闭的时候调用,(内存不足,系统关闭或者长按app icon图标强行关闭)
    func applicationWillTerminate(_ application: UIApplication) {}
    

    应用程序生命周期我们都已经了解了。那我们继续看viewController生命周期

    //viewController生命周期
    
    //视图加载之后被调用,视图控制器生命周期只调用一次
    func viewDidLoad() {}
    //视图将要出现的时候调用
    func viewWillAppear(){}
    //视图已经出现的时候调用
    func viewDidAppear(){}
    //当收到视图将去除、被覆盖或隐藏于视窗时的通知会呼叫的方法
    func viewWillDisappear
    //当收到视图已去除、被覆盖或隐藏于视窗时的通知会呼叫的方法
    func viewDidDisappear(){}
    

    最后感谢在@whbalzac指点下完成。。。。

    相关文章

      网友评论

      • whbalzac:applicationWillTerminate // 程序即将退出,并不是崩溃
        yi蜀黍:@whbalzac :pray:
        whbalzac:@yi蜀黍
        如果您的应用程序当前已被暂停,系统会将您的应用程序杀死,并将其从内存中删除,恕不另行通知。 // Google翻译,当然最好的验证就是跑个demo,你试一下crash的时候会不会调用。刚刚我试了下,是不会的。这个方法,在没多线程的iOS 4之前,代替applicationDidEnterBackground方法被调用。4之后,调用applicationDidEnterBackground,进入后台,期间内存不足或者10分钟后,程序被杀,会调用applicationWillTerminate。
        yi蜀黍:@whbalzac iOS Application Programming Guide中说的:
        If your application is currently suspended, the system kills your application and removes it from memory without any notice.
      • whbalzac:viewDidDisappear // 是 “视图已经消失”,不是即将消失
        viewWillDisappear // 才是即将消失
        yi蜀黍:@whbalzac 多谢指点
      • footSInRoad:iOS 是这样的 😋

      本文标题:IOS生命周期详解

      本文链接:https://www.haomeiwen.com/subject/ohiscxtx.html