从 iOS7 开始,我们可以通过滑动视图边缘返回(popViewController)。然而,当将 customView 设置为 navigationItem.leftBarButtonItems
时,这可能不起作用。
我在这里找到了一个解决方案 这里,但它在滑动 popViewController
动画时可能会崩溃(我发现 Pinterest v.3.7 也存在此问题)。此外,我认为这个解决方案几乎不适用于所有应用,因为它们可能没有一个基于 UINavigationController
的根类。
这个库是上述解决方案的改进。
只需在 viewDidAppear
中将 viewController 设置为 sharedInstance。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[HCPopBackGestureProxy sharedInstance].viewController = self;
}
然后,在 viewWillDisappear
中调用它。
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[HCPopBackGestureProxy sharedInstance] viewWillDisappear];
}
如果您想部分禁用此手势,请实现协议方法并返回 NO,如下所示。
- (BOOL)hcPopBackGestureProxyShouldBegin:(UIGestureRecognizer *)recognizer {
// do something...
return NO;
}
HCPopBackGestureProxy 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile
pod 'HCPopBackGestureProxy'
HCPopBackGestureProxy 可在 MIT 许可证的范围内使用。有关更多信息,请参阅 LICENSE 文件。