我从here分得到了相反的问题. 在iOS7中,默认情况下,UINavigationController的堆栈的向后滑动手势可以弹出所呈现的ViewController.现在我刚为所有的ViewControllers款统一了self.navigationItem.leftBarButtonItem款.

以下是代码:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:LOADIMAGE(@"back_button") style:UIBarButtonItemStylePlain target:self action:@selector(popCurrentViewController)];

在此之后,navigationController.interactivePopGestureRecognizer被禁用.如何在不删除自定义leftBarButtonItem的情况下启用弹出手势?

谢谢!

推荐答案

在viewDidLoad中首先设置委托:

self.navigationController.interactivePopGestureRecognizer.delegate = self;

然后在按下时禁用手势:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
    [super pushViewController:viewController animated:animated];
    self.interactivePopGestureRecognizer.enabled = NO;
}

并在viewDidDisplay中启用:

self.navigationController.interactivePopGestureRecognizer.enabled = YES;

另外,将UINavigationControllerDelegate添加到您的视图控制器中.

Ios相关问答推荐

如何正确测试后台URLSessionDownloadTask?

自定义alert 未执行任何操作

缺少预期的键:';NSPrival yCollectedDataTypes';

在滚动视图中固定页眉,但在页眉上方嵌入元素

Xcode 15模拟器用x86_64编译

iOS设备网页自动化中,在向字段发送文本后未启用按钮

在 iOS 上启用明文本地流量在 .NET MAUI 中不起作用

更改订单时如何保存商品的位置?

占位符文本未显示在 TextEditor 上

添加到单个自定义视图时,Swiftui 项目会在所有视图中重复

通过函数使用 Gesture 时,键入任何视图不能符合视图

TextField 重复输入 SwiftUI

迁移到 UIKit 生命周期的应用程序不会调用 SceneDelegate

SwiftUI NavigationLink 立即加载目标视图,无需单击

如何在通用应用程序中同时支持 iPad 和 iPhone 视网膜图形

在 Swift 中执行 while 循环

如何以编程方式调用视图控制器?

有什么方法可以加粗 NSString 的一部分?

iPhone:什么是 WWDR 中级证书?

UITableView 中的圆形 UIImageView 没有性能影响?