OC页面返回:区分pop和手势操作
在iOS开发中,可以通过以下方法来区分是通过pop还是手势来进行页面的返回操作:
- 使用UINavigationControllerDelegate的方法:
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
if navigationController.viewControllers.index(of: viewController) == nil {
// 页面是通过pop返回的
} else {
// 页面是通过手势返回的
}
}
在UINavigationControllerDelegate的方法中,通过判断要显示的viewController是否在navigationController的viewControllers中,来确定页面是通过pop返回还是通过手势返回。
- 使用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还是手势来进行页面的返回操作。
原文地址: https://www.cveoy.top/t/topic/pGJ8 著作权归作者所有。请勿转载和采集!