【发布时间】:2023-03-23 17:04:01
【问题描述】:
我正在使用导航控制器,我想用自定义替换默认的后退按钮和文本。这是我的工作:
navigationItem.backBarButtonItem = UIBarButtonItem(title: "back", style: UIBarButtonItemStyle.Plain, target: nil, action: nil)
navigationController?.navigationBar.backIndicatorImage = UIImage(named: "BackCarretIcon")
navigationController?.navigationBar.backIndicatorTransitionMaskImage = UIImage(named: "BackCarretIcon")
这是在离开根视图控制器之前为 segue 做准备的。
当下一个视图控制器出现时,图像似乎在正确的位置,但是当推送动画完成时,后退按钮图像向下移动了一点。查看目标视图控制器的图像:
所以“BackCarretIcon”和“back”标签不是垂直居中对齐的。怎么会??以及如何解决这个问题。
目标视图控制器的视图控制器生命周期方法中没有使用导航控制器或导航项的代码。
编辑
我在目标视图控制器的viewWillLayoutSubviews 中放置了一个断点。在目标视图控制器出现在屏幕上之前,它会中断两次。当我在第二次休息后继续执行时,目标视图控制器被推到屏幕上(后括号在正确的位置)。当它被完全推到屏幕上时,后卡雷特向下跳了几个点,到了错误的位置,viewWillLayoutSubviews 再次中断。
我无法打破,在后面的carret定位正确的地方......
【问题讨论】:
标签: ios swift uinavigationcontroller uinavigationbar uinavigationitem