【发布时间】:2018-04-29 00:47:04
【问题描述】:
我有一个 UIBarButtonItem,“完成” - 在 Storyboard IB 中为 ViewController A 创建。
ViewController A 是导航栈的根视图控制器。
如果我将视图控制器 B 推送到导航堆栈然后再次弹出它。完成按钮的字体粗细发生变化。
完成按钮的字体颜色应用在 A.viewWillAppear(..) 中,看起来很像
doneButton.tintColor = [CMPThemes navigationBarItemColour]; // it's a blue
我已经从应用程序中删除了所有外观代理代码(因为那里 不止一种风格的导航栏/按钮/标题出现在 应用程序)所以我不是在寻找只能通过 外观代理...
我在调试视图层次结构中检查了完成按钮是 转换前后的相同实例
我尝试在 pop 之后重新应用 tint 颜色
我不会在流程中的任何地方应用字体粗细
另外,在我看来,字体和字体大小似乎在 过程。
在 ViewController A 中
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
...
self.navigationController?.pushViewController(vcB, animated: true)
...
在 ViewController B 中
viewDidLoad() {
...
let backButton = UIBarButtonItem(image: UIImage(named: "arrowLeft"), style: .plain, target: self, action: #selector(goBack))
backButton.tintColor = CMPThemes.popoverNavigationBarItemColour()
self.navigationItem.leftBarButtonItem = backButton
}
情节提要如下所示:(我已将 A 和 B 添加到图像中以保持清晰度)。
如果有人发现问题并能指出正确的方向来解决问题,那就太好了!
【问题讨论】:
-
好像在 viewController B 中你有一些自定义 UI,比如后退按钮。也许在创建自定义后退按钮时,您做了一些影响完成按钮的事情。如果你能给我们一个调试仓库,这里的问题就更容易了。
-
viewController B viewWillDisappear/viewDidDisappear中有没有写代码?
-
@trungduc @muneeba 我会为你们更新问题。
-
@Damo 看起来不错,你在
CMPThemes里面做了什么特别的事情吗? -
@trungduc 不,它只是一种颜色
标签: ios uinavigationcontroller uibarbuttonitem