自定义navigationItem.titleView未设置

时间:2015-01-22 09:54:31

标签: ios swift

我在设置self.navigationItem.titleView时遇到了麻烦,有人可以帮我解决我的错误。

import Foundation

class CustomNavigationController: UINavigationController
{
    override func viewDidLoad() {
        let logo = UIImage(named: "browse_back")
        var hexColor = 0x21BBD4 as UInt
        self.navigationBar.barTintColor = GeneralHelper.UIColorFromRGB(hexColor)
        self.navigationItem.titleView = UIImageView(image: logo)
    }
}

这是我将titleView设置为图像的代码。

enter image description here enter image description here

当我运行应用程序时,导航栏的颜色将更改为正确的颜色,但titleView图像不会显示。

  • 我已经过测试以确保图像确实存在。

感谢。

2 个答案:

答案 0 :(得分:5)

  

管理UINavigationController对象使用导航项   填充导航栏的最顶层的两个视图控制器   内容。

来源:UINavigationItem Class Reference

您必须设置控制器titleView的{​​{1}},该控制器是自定义导航控制器管理的导航堆栈中最顶层的控制器。

答案 1 :(得分:5)

对于那些使用UILabel作为titleView的人

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationItem.titleView?.sizeToFit()
}

希望这有效!