当用户向后滑动时 popToRootViewControllerAnimated
popToRootViewControllerAnimated when user swipe back
我有视图 A、视图 B 和视图 C。我已从视图 A 推送视图 B,并从视图 B 推送视图 C。
当用户点击视图 C 中的后退按钮时,我调用 popToRootViewControllerAnimated 以便用户根本看不到视图 B。
问题是,如果用户在视图C中向后滑动,他们仍然会看到视图B。我根本不想让用户看到视图B,而是直接跳转到视图A。我该怎么办?
我目前使用xib。
您可以关闭向后滑动功能
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
这样用户只能通过您提供的按钮返回
当 ViewController C 出现时,您可以更改 NavigationController 的堆栈。使用以下代码:-
NSMutableArray *aMutArr = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[aMutArr removeObjectAtIndex:aMutArr.count-2];
self.navigationController.viewControllers = aMutArr;
我已经从堆栈中删除了 ViewController B。因此,如果您的用户向后滑动,他将能够看到 ViewController A.
我有视图 A、视图 B 和视图 C。我已从视图 A 推送视图 B,并从视图 B 推送视图 C。
当用户点击视图 C 中的后退按钮时,我调用 popToRootViewControllerAnimated 以便用户根本看不到视图 B。
问题是,如果用户在视图C中向后滑动,他们仍然会看到视图B。我根本不想让用户看到视图B,而是直接跳转到视图A。我该怎么办?
我目前使用xib。
您可以关闭向后滑动功能
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
这样用户只能通过您提供的按钮返回
当 ViewController C 出现时,您可以更改 NavigationController 的堆栈。使用以下代码:-
NSMutableArray *aMutArr = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
[aMutArr removeObjectAtIndex:aMutArr.count-2];
self.navigationController.viewControllers = aMutArr;
我已经从堆栈中删除了 ViewController B。因此,如果您的用户向后滑动,他将能够看到 ViewController A.