在iOS中,可以通过以下方法来区分是通过pop还是手势关闭的ViewController

  1. 通过UINavigationController的代理方法navigationController(_:didShow:animated:)来判断,当ViewControllerpop出栈时,该方法会被调用。可以在该方法中判断navigationControllerviewControllers数组是否包含当前ViewController,如果不包含,则说明是通过pop关闭的。
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
    if !navigationController.viewControllers.contains(viewController) {
        // 通过pop关闭
    } else {
        // 手势关闭
    }
}
  1. 可以通过重写UIViewControllerviewWillDisappear(_:)方法来判断,当ViewController即将消失时,该方法会被调用。可以在该方法中判断isBeingDismissed属性,如果为true,则说明是通过pop关闭的。
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    
    if isBeingDismissed {
        // 通过pop关闭
    } else {
        // 手势关闭
    }
}

通过以上方法,你可以在ViewController中区分是通过pop还是手势关闭的

oc中viewcontroller如何区分是通过pop还是手势关闭的

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

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