在iOS 7中更改后退按钮会禁用滑动以返回导航 [英] Changing back button in iOS 7 disables swipe to navigate back

查看:160
本文介绍了在iOS 7中更改后退按钮会禁用滑动以返回导航的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个iOS 7应用程序,我在这里设置一个自定义后退按钮:

I have an iOS 7 app where I am setting a custom back button like this:

    UIImage *backButtonImage = [UIImage imageNamed:@"back-button"];
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [backButton setImage:backButtonImage forState:UIControlStateNormal];
    backButton.frame = CGRectMake(0, 0, 20, 20);

    [backButton addTarget:self
                   action:@selector(popViewController)
         forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    viewController.navigationItem.leftBarButtonItem = backBarButtonItem;

但这会禁用iOS 7从左向右滑动手势以导航到之前的控制器。有谁知道如何设置自定义按钮并仍然保持此手势?

But this disables the iOS 7 "swipe left to right" gesture to navigate to the previous controller. Does anyone know how I can set a custom button and still keep this gesture enabled?

编辑:
我尝试设置viewController.navigationItem.backBarButtonItem,但这似乎没有显示我的自定义图像。

I tried to set the viewController.navigationItem.backBarButtonItem instead, but this doesn't seem to show my custom image.

推荐答案

重要提示:
这是一个黑客。我建议您查看此答案

致电分配 leftBarButtonItem 之后的以下行为我工作:

Calling the following line after assigning the leftBarButtonItem worked for me:

self.navigationController.interactivePopGestureRecognizer.delegate = self;

修改:
如果在 init 方法。它应该在 viewDidLoad 或类似方法中调用。

This does not work if called in init methods. It should be called in viewDidLoad or similar methods.

这篇关于在iOS 7中更改后退按钮会禁用滑动以返回导航的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆