Swift UIViewController 生命周期方法:willMove(toParentViewController:)didMove(toParentViewController:)

在 Swift 中,UIViewController 提供了一些生命周期方法,帮助我们监控视图控制器的状态变化。其中两个比较常用的方法是 willMove(toParentViewController:)didMove(toParentViewController:),分别在视图控制器即将移动到新的父视图控制器和已经移动到新的父视图控制器时被调用。

willMove(toParentViewController:)

此方法在视图控制器即将移动到新的父视图控制器时被调用。我们可以在这个方法中进行一些准备工作,例如:

  • 初始化一些数据
  • 设置一些视图属性

示例代码:

func willMove(toParentViewController parent: UIViewController?) {
    super.willMove(toParentViewController: parent)
    print('111111111111c \(#function),\(parent)')
}

didMove(toParentViewController:)

此方法在视图控制器已经移动到新的父视图控制器时被调用。我们可以在这个方法中进行一些清理工作,例如:

  • 移除一些监听
  • 释放一些资源

示例代码:

func didMove(toParentViewController parent: UIViewController?) {
    super.didMove(toParentViewController: parent)
    print('2222222222222 \(#function),\(parent)')
    if parent == nil {
        print('页面pop成功了')
    }
}

页面 pop 检测

didMove(toParentViewController:) 方法中,我们可以通过判断 parent 是否为空来检测页面是否 pop 成功。如果 parent 为空,则表示当前视图控制器已经从导航栈中弹出,页面 pop 成功。

总结

willMove(toParentViewController:)didMove(toParentViewController:) 是 Swift 中 UIViewController 生命周期方法中两个比较重要的方法,它们可以帮助我们了解视图控制器的状态变化,并在不同阶段进行相应的操作。

Swift UIViewController 生命周期方法:willMove(toParentViewController:) 和 didMove(toParentViewController:)

原文地址: https://www.cveoy.top/t/topic/pgno 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录