欢迎访问宙启技术站
智能推送

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中左右滑动手势将被禁用或者恢复。

需要注意的是,在禁用侧滑返回手势后,需要自行添加返回按钮实现返回上一级视图的功能。

总结:

实现禁用侧滑返回手势无非两种方法,根据自己的情况选择适合的方法。同时需要注意在禁用侧滑返回手势后,需要自行添加返回按钮实现返回上一级视图的功能。