Nativescript '&书信电报;返回&x27;按钮

Nativescript '&书信电报;返回&x27;按钮,nativescript,Nativescript,我有下面的ActionBar定义 Android版本确实会被调用 在iOS版本中,从不调用onBackTap方法 在iOS版本中,即使导航按钮条目不存在,{N}也会自动插入一个。更新: 实际上,iOS中的NavigationButton似乎只能用于向后导航,不能用点击操作覆盖。参考自 在iOS中,后退按钮明确用于导航。信息技术 导航到上一页,您无法将点击事件处理为 无视这种行为 至于iOS上出现的导航按钮——它的设计与本机iOS应用程序一样。如果您不想进行反向导航,可以使用 clearHis

我有下面的ActionBar定义


Android版本确实会被调用

在iOS版本中,从不调用onBackTap方法

在iOS版本中,即使导航按钮条目不存在,{N}也会自动插入一个。

更新: 实际上,iOS中的NavigationButton似乎只能用于向后导航,不能用点击操作覆盖。参考自

在iOS中,后退按钮明确用于导航。信息技术 导航到上一页,您无法将点击事件处理为 无视这种行为

至于iOS上出现的导航按钮——它的设计与本机iOS应用程序一样。如果您不想进行反向导航,可以使用

clearHistory: true

在测试应用程序中取消注释并从
子页面删除导航按钮,当从
主页
导航到
子页面时,导航按钮将不会出现。

因此@nick验证,在iOS版本的{N}上无法获得导航按钮的点击事件。我理解为什么{N}必须在导航按钮不在的情况下自动添加后退按钮(因为iPhone没有物理后退按钮),但不调用现有的点击事件会在框架中添加不必要的差异。以下是iOS的拟议逻辑

如果导航按钮存在,则
如果点击用户设置的事件处理程序,则
使用它
其他的
自动生成tap事件处理程序
其他的
自动生成后退按钮和点击事件处理程序

不管怎样,以下是我如何解决我的应用程序的这个问题



这符合我的预期,并且与Android版本兼容。

我非常确定我的决定是正确的,因为它在Android上的工作与预期一样,但我会再次检查,并在几小时后回来。至于IOS“后退”按钮的行为——理解并且有意义。只是在macOS上尝试了一下——它没有呼叫。我逐字复制了你的第二页,也复制了导航的启动。未调用goBack函数。我非常乐意克隆您的项目并尝试它-但我没有看到这个选项。下一步,我将创建一个模板项目并启动它。我看到的唯一区别是配置包-我没有。你试过运行我的应用程序吗。配置包不应与此包相关。检查package.json中运行时和模块的版本。好的,我创建了一个虚拟应用程序,复制了你的代码,但没有调用。如果您有时间,请您快速查看一下-这是压缩文件。对于s&g,我添加了
。我刚刚学到了一些新的东西,令我惊讶的是,在iOS中,似乎确实无法覆盖导航栏的默认操作。有关详细信息,请参阅更新的答案。感谢您的回复。我只是想确保我或我的电脑不会因为你最初发布的信息而变得疯狂。