iOS获取UINavigationBar的后退按钮以设置辅助功能属性

iOS获取UINavigationBar的后退按钮以设置辅助功能属性,第1张

概述我有一个导航控制器堆栈,其中一个视图有一个动态标题. 视图控制器及其标题如下所示: Main --> ItemsTableView --> ItemDetailsTitle:Main Title: NN Items Title: Details 因为iOS UINavigationController将“后退按钮的文本设置为前一屏幕的标题,所以详细信息屏幕 我有一个导航控制器堆栈,其中一个视图有一个动态标题.

视图控制器及其标题如下所示:

Main       -->  ItemstableVIEw  -->  ItemDetailsTitle:Main      Title: NN Items      Title: Details

因为iOS UINavigationController将“后退”按钮的文本设置为前一屏幕的标题,所以详细信息屏幕上的“后退”按钮显示“< NN Items”,其中NN是动态变化的数字. 我正在尝试做一些iOS UI自动化,但后退按钮的可访问性标签/ ID由系统设置为它的按钮文本.这意味着详细信息屏幕上后退按钮的可访问性标签将动态更改,我无法从我的脚本中找到它! 如果我可以获得对UIbarbuttonItem的引用,那么我可以轻松地将它的accessibilityLabel或accessibilityIDentifIEr从代码设置为固定字符串,但是我无法弄清楚如何做到这一点? 我已经能够找到的所有东西都通过self.navigationItem.backbarbuttonItem或者类似的方式将后退按钮设置为自定义按钮,但是当我读取这个属性时它是零.我无法找到如何在不更换标准项目的情况下访问标准项目.如果可能的话,我宁愿不更换按钮

@H_301_9@解决方法 这也困扰着我.我一直在编写Xcode 7 UI测试,并试图想出一种通用的方法来点击后退按钮,而无需用自定义按钮替换它.

以下是我为Xcode 7 UI测试解决这个问题的方法 – 但您也可以将其应用于UI自动化.

我发现(至少在Xcode 7 UI测试方面)系统创建的后栏按钮项目由两个按钮组成,整个事物是一个按钮,其按钮的标题是按钮的标题,然后是箭头也是一个可访问性标签为“后退”的按钮.

因此,只要屏幕上没有任何其他标识为“后退”的按钮,就可以通过“后退”的可访问性标签访问后退按钮.就像UI测试一样:

[[app.buttons matchingIDentifIEr:@"Back"] elementBoundByIndex:0]

@R_419_7004@,我得到了第一个可以通过“返回”识别的按钮.在我的情况下,只能有两个这样的按钮 – 箭头或整个后退按钮本身(在后退按钮的标题也是“后退”的情况下).由于这两个按钮基本相同,只需找到它找到的第一个就足够了.

总结

以上是内存溢出为你收集整理的iOS获取UINavigationBar的后退按钮以设置辅助功能属性全部内容,希望文章能够帮你解决iOS获取UINavigationBar的后退按钮以设置辅助功能属性所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存