在iOS开发中,可以通过以下方法来区分是通过pop还是手势来进行页面的返回操作:

  1. 使用UINavigationControllerDelegate的方法:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
    if navigationController.viewControllers.index(of: viewController) == nil {
        // 页面是通过pop返回的
    } else {
        // 页面是通过手势返回的
    }
}

在UINavigationControllerDelegate的方法中,通过判断要显示的viewController是否在navigationController的viewControllers中,来确定页面是通过pop返回还是通过手势返回。

  1. 使用UIGestureRecognizerDelegate的方法:
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let navigationController = self.navigationController, navigationController.viewControllers.count > 1 {
        // 页面是通过手势返回的
    } else {
        // 页面是通过pop返回的
    }
    return true
}

在UIGestureRecognizerDelegate的方法中,通过判断navigationController的viewControllers的数量来确定页面是通过pop返回还是通过手势返回。注意,需要将手势的delegate设置为当前视图控制器。

通过以上方法,可以在OC中区分是通过pop还是手势来进行页面的返回操作。

OC页面返回:区分pop和手势操作

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

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