iOS 7 自定义后退按钮

2023-11-24

我想使用自定义后退按钮。在 iOS 6 中,一切都很完美,但是iOS 7很奇怪。

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:[[UIImage imageNamed:@"back_button_normal"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12.0, 0, 12.0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

首先,它没有 iOS 7 箭头,也没有背景图片。

(俄语语言环境)

initial state

然后,如果您按下按钮,就会出现背景图像。我还设置了背景图像UIControlStateHighlighted状态,当您按住按钮时,也会出现突出显示的图像。按下任何后退按钮后,所有后退按钮都有背景图像。

once pressed

但!如果您呈现模态视图控制器,请将其关闭,然后推送任何视图控制器 -iOS 7每个后退按钮上都会出现箭头。

我用的是DP5。这是 UIKit 的错误吗?

PS我还尝试手动创建后退按钮,使用UIBarButtonItem,为其设置背景图片,然后self.navigationItem.backBarButtonItem = barButtonItem;没有帮助。 然后我尝试将背景图像设置为禁用状态并更改我的栏按钮项目的启用属性,也没有帮助。

enter image description here


这不是一个错误,这是如何Back button在 iOS 7 中看起来。例如:

enter image description here

您可能应该在您的应用程序中使用新概念,而不是在 iOS 7 中为后退按钮设置背景图像。

如果您仍然希望后退按钮与 iOS6 中的外观相同,那么您可能应该手动创建这些后退按钮:

- (void)loadView
{
    [super loadView];

    UIButton *backButton = [[UIButton alloc] initWithFrame: CGRectMake(0, 0, 60.0f, 30.0f)];
    UIImage *backImage = [[UIImage imageNamed:@"back_button_normal.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 12.0f, 0, 12.0f)];
    [backButton setBackgroundImage:backImage  forState:UIControlStateNormal];
    [backButton setTitle:@"Back" forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(popBack) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    self.navigationItem.leftBarButtonItem = backButtonItem;
}

-(void) popBack {
  [self.navigationController popViewControllerAnimated:YES];
}

Edit: 不破坏滑动手势 (这是一个来源)

self.navigationController.interactivePopGestureRecognizer.delegate = (id<UIGestureRecognizerDelegate>)self;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 7 自定义后退按钮 的相关文章

随机推荐

  • 未捕获的类型错误:对象 [object DOMWindow] 的属性“$”不是函数

    我得到一个 未捕获的类型错误 对象 object DOMWindow 的属性 不是函数我的脚本在 Chrome 中出错
  • “this”关键字如何工作以及何时使用?

    我正在寻找关于 this 关键字的作用以及如何正确使用它的清晰解释 它的行为似乎很奇怪 我不完全明白为什么 如何this工作以及什么时候应该使用它 this是 JavaScript 中的关键字 是执行上下文的属性 它的主要用途是在函数和构造
  • Zend 动作助手

    我正在学习如何使用 Zend 框架 并意识到操作助手是有用的 我已经在我的机器上设置了 Zend 的默认安装 但我不知道帮助程序文件需要放在哪里 我需要在引导程序文件中放入什么以及如何使用它 谁能给我指出正确的方向吗 ZF 用户指南对我来说
  • C# 字符串到十六进制、十六进制到字节的转换

    我有一个方法 它采用十六进制值并将其分配为纯文本 但字节类型是这样的 byte plainText 0xd7 我想从文本框中获取这个值 例如用户将在文本框中键入 d7 我将像这样分配它 byte plaintText 0xd7 我无法做到这
  • 我应该使用我的应用程序重新分发 msvcrt.dll 吗?

    如果应用程序的某些库动态依赖于 msvcrt dll 我是否应该将 msvcrt dll 与我的应用程序一起重新分发并使用私有 dll IE 系统的msvcrt dll dll hell 是否可能存在不兼容问题 应用程序针对 Windows
  • 如何实现顶层异常处理?

    最近 我必须为同事开发的现有服务开发一个附加模块 他在主工作函数中放置了一个 try catch 块 用于捕获所有冒泡到此级别的未处理异常 并将它们与堆栈跟踪信息等记录在一起 try do main work catch Exception
  • PyCUDA:设备代码中的 Pow 尝试使用 std::pow,失败

    问题或多或少说明了一切 calling a host function std pow
  • ValueError:找到具有 0 个样本的数组(形状= (0, 1),而 MinMaxScaler 要求最小值为 1

    我是机器学习的初学者 我正在帮助我的数学专业朋友基于 TensorFlow 创建一个股票预测器 csv他提供的文件 我有一些问题 第一个是他的 csv文件 该文件只有日期和结束值 它们没有分开 因此我必须手动分隔日期和值 我已经成功做到了这
  • ArrayList 的不安全或未经检查的操作

    我被指派编写一个程序 获取 100 个 0 25 之间的随机整数并将它们存储在一个数组中 然后我必须调用两种方法来分割偶数和赔率 非常典型 所以我尝试了 ArrayList 的东西 我刚刚学会它 它看起来很好 我正在关注教程和在线的东西 直
  • hibernate oracle 标识符太长 ORA-00972

    我被这个问题困扰了 数据库架构是由其他人提供的 因此我不能简单地更改名称 我尝试在各处添加正确的注释 也许我遗漏了一些东西 明显的 这是我的完整映射 相当多的类 我将提交 getter setter 问题是当休眠试图获取所有List
  • Android Service.startForeground 不尊重通知 ID 的唯一性

    Service startForeground vs 通知管理器 notify 给出不同的行为 使用时notify使用两个不同的通知 ID 创建 2 个通知 Good 当做同样的事情时启动前台 一个通知会覆盖另一个通知 Bad 测试设备 N
  • 用于纯 Firebase JavaScript API 的 orderby 对象过滤器

    I found angularFire当与纯 Firebase JavaScript API 结合使用时 总是让我感到困惑 假设我不知道如何调用 Firebase datasapshot APIss name ss hasChild ss
  • 在python中获取函数调用者的信息

    我想获取有关 python 中特定函数的调用者的信息 例如 class SomeClass def init self x self x x def caller self return special func self x def sp
  • 内存泄漏单元测试C++

    我刚刚解决了应用程序中的内存泄漏问题 现在我想编写一个单元测试以确保这种情况不会再次发生 我正在寻找一种方法来检测当前应用程序 工作集 在某些功能之前和之后的内存使用情况 例如 long mem used GetMemUsed Do som
  • Java ObjectInputStream 挂起

    我现在感觉真的很愚蠢 伙计们 基本上我是通过本地计算机上的 TCP 连接的 当我尝试在客户端创建输入 输出流时 它不会通过创建对象输入流 是什么赋予了 这在打印 2 后停止 没有异常或任何东西 这不是我第一次使用这个类 这部分是我感到困惑的
  • XSLT 将同名兄弟节点的值合并/连接到单个节点

    输入XML
  • 实体管理器是否创建与数据库的连接?

    在我的项目中 我忘记关闭每个操作的实体管理器 一段时间后 由于与 mysql 服务器的连接过多 我遇到了异常 这是否意味着每个实体管理器都建立连接 当我们忘记关闭连接时会发生什么 我只使用了一个实体管理器工厂 假设您正在使用应用程序管理的实
  • 根据“grid_location”方法,按钮有自己的坐标系吗?

    我正在尝试使用grid location方法 从网格几何管理器 在 Tkinter 中 但似乎我做错了什么 这是我的代码 from tkinter import root Tk b Button root text 00 b grid ro
  • 如何确保我的 git 存储库代码是安全的?

    如果我们的组织要从像 subversion 这样的中央服务器 VCS 切换到像 git 这样的分布式 VCS 我如何确保我的所有代码都不会出现硬件故障 使用中央服务器 VCS 我只需要每天备份存储库 如果我们使用 DVCS 那么所有开发人员
  • iOS 7 自定义后退按钮

    我想使用自定义后退按钮 在 iOS 6 中 一切都很完美 但是iOS 7很奇怪 UIBarButtonItem appearance setBackButtonBackgroundImage UIImage imageNamed back