简体   繁体   中英

Custom navigationItem.titleView not setting

I am having troubles setting the self.navigationItem.titleView , could someone please help me catch my mistake.

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)
    }
}

Here is my code for setting the titleView to an image.

在此处输入图片说明在此处输入图片说明

When I run the application, the color of the navigation bar is being changed to the correct color, but the titleView image is not displaying.

  • I've tested to ensure the image does exist.

Thanks.

The managing UINavigationController object uses the navigation items of the topmost two view controllers to populate the navigation bar with content.

Source: UINavigationItem Class Reference

You have to set the titleView of the navigationItem of the controller that is the top most controller in the navigation stack managed by your custom navigation controller.

For those using a UILabel as your titleView

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

Hope this works!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM