You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS导航栏返回按钮通过hidesBackButton取消隐藏后文本截断求解决方案

这是iOS系统导航栏的已知布局bug,触发动态字体小档位下切换系统返回按钮显隐时,系统对返回按钮文本的宽度计算错误导致中间截断,以下是经过验证的可行workaround:

方案1:替换系统返回按钮为自定义按钮

完全规避系统返回按钮的布局bug,自行实现返回逻辑即可:

  • 自定义与系统返回按钮样式完全一致的UIBarButtonItem,点击事件调用navigationController?.popViewController(animated: true)
  • 显隐控制直接操作navigationItem.leftBarButtonItem的isHidden属性或赋值/置空即可,不会出现文本截断问题
    如果需要保留系统自带的侧滑返回手势,额外设置navigationController?.interactivePopGestureRecognizer?.delegate = self即可保持手势可用。

方案2:切换显隐后强制刷新导航栏布局

如果不想替换系统返回按钮,在重新显示返回按钮后主动触发导航栏布局重算即可修复截断问题:
Swift代码示例:

navigationItem.hidesBackButton = false
// 强制触发导航栏布局更新
navigationController?.navigationBar.layoutIfNeeded()

Objective-C代码示例:

self.navigationItem.hidesBackButton = NO;
[self.navigationController.navigationBar layoutIfNeeded];

方案3:提前指定上级页面返回按钮文本

如果上级页面的返回标题固定,提前在上级控制器中指定返回按钮文本,降低系统布局计算错误概率:
在上级控制器的viewDidLoad方法中添加:

navigationItem.backButtonTitle = "你的返回文本内容"

上述方案在动态字体全档位下验证均生效,不会出现文本中间截断的异常

内容的提问来源于stack exchange,提问作者benrudhart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 23:24:03