UIButton 作为 UINavigationItem titleView

UIButton as UINavigationItem titleView

我正在尝试将 UIButton 作为我的 UINavigationItemtitleView。这是我的代码,但它不起作用。标题完全空白。

override func viewDidLoad() {
    super.viewDidLoad()

    let titleButton = UIButton()
    titleButton.titleLabel?.font = UIFont(name: "HelveticaNeue-Medium", size: 16)
    titleButton.titleLabel?.textAlignment = NSTextAlignment.Center;
    titleButton.titleLabel?.text = "My Custom Title"
    titleButton.titleLabel?.sizeToFit()

    self.navigationItem.titleView = titleButton
}

这是缺少标题的屏幕截图。

要设置按钮的标题,您不应该直接设置标签的文本,您应该配置按钮以使用 func setTitle(_ title: String?, forState state: UIControlState).[=12= 为特定状态设置标题]

通常,您为 .Normal 设置标题,然后该标题将应用于所有州(默认)。

如果您使用的是 Storyboard,可以将 UIButton 拖到 titleView。如果 Interface Builder 不允许您这样做,那是因为您需要先将 UINavigationItem 拖到导航栏,然后您可以将视图拖入其中,例如 UIButton.