oc中viewcontroller如何区分是通过pop还是手势关闭的
在iOS中,可以通过以下方法来区分是通过pop还是手势关闭的ViewController:
- 通过
UINavigationController的代理方法navigationController(_:didShow:animated:)来判断,当ViewController被pop出栈时,该方法会被调用。可以在该方法中判断navigationController的viewControllers数组是否包含当前ViewController,如果不包含,则说明是通过pop关闭的。
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
if !navigationController.viewControllers.contains(viewController) {
// 通过pop关闭
} else {
// 手势关闭
}
}
- 可以通过重写
UIViewController的viewWillDisappear(_:)方法来判断,当ViewController即将消失时,该方法会被调用。可以在该方法中判断isBeingDismissed属性,如果为true,则说明是通过pop关闭的。
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if isBeingDismissed {
// 通过pop关闭
} else {
// 手势关闭
}
}
通过以上方法,你可以在ViewController中区分是通过pop还是手势关闭的
原文地址: http://www.cveoy.top/t/topic/hXGw 著作权归作者所有。请勿转载和采集!