iOS如何禁用侧滑返回手势
发布时间:2023-05-15 00:41:07
在iOS系统中,左右滑动手势可以让用户返回上一级视图或者关闭当前视图。这种手势在一定程度上方便了用户的操作,但在一些情况下可能会影响APP的使用体验。例如在嵌入网页或视频播放的场景中,左右滑动会误触返回手势导致用户无法正常操作页面,这时需要禁用侧滑返回手势。
以下是具体操作步骤:
种方式:
1. 打开Xcode,打开项目工程文件;
2. 在工程栏里找到AppDelegate.m文件;
3. 在AppDelegate.m文件的didFinishLaunchingWithOptions方法中添加以下代码:
if([self.window respondsToSelector:@selector(setRootViewController:)])
{
UIViewController* controller = [[UIViewController alloc] init];
[self.window setRootViewController:controller];
}
4. 保存并运行工程,在运行时左右滑动手势将被禁用。
第二种方式:
1. 在需要禁用侧滑返回手势的UIViewController对应的.m文件中添加以下代码:
//禁用左滑返回手势
- (void)viewWillAppear:(BOOL)animated
{
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
}
//恢复左滑返回手势
- (void)viewWillDisappear:(BOOL)animated
{
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
2. 在需要恢复侧滑返回手势的UIViewController对应的.m文件中添加以下代码:
//恢复左滑返回手势
- (void)viewWillAppear:(BOOL)animated
{
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
}
//禁用左滑返回手势
- (void)viewWillDisappear:(BOOL)animated
{
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
}
3. 保存并运行工程,在需要禁用或者恢复侧滑返回手势的UIViewController中左右滑动手势将被禁用或者恢复。
需要注意的是,在禁用侧滑返回手势后,需要自行添加返回按钮实现返回上一级视图的功能。
总结:
实现禁用侧滑返回手势无非两种方法,根据自己的情况选择适合的方法。同时需要注意在禁用侧滑返回手势后,需要自行添加返回按钮实现返回上一级视图的功能。
