标题使用不明确 - Xcode 9 beta

Ambiguous use of title - Xcode 9 beta

Xcode 9 beta 编译器针对 navigationItem.titleself.navigationController?.navigationBar.topItem?.title 显示以下错误:

Ambiguous use of 'title'

这是我的代码:

self.title = BMLocalized("Select Number of Passengers")
navigationItem.title = navigationTitleString // here showing error
submitButton.setTitle(submitButtonTitle, for: .normal)

谁能帮忙解决这个问题?

随便用,

self.title = "title_name"

而不是两者,如果您同时使用两者,那么它将相互替换。

更新:

只需使用此代码:

navigationItem.titleLabel.text = "text"

旧答案:

这是因为您使用了扩展 UINavigationItem class 并重新实现 属性 title 的第三方库。所以,这个库与 UIKit 冲突。

解决方案:

只需使用

title

而不是

navigationItem.title

或者移除第三方库中UINavigationItem的扩展class。您可以在问题导航器中看到该库的名称:

对于MATERIAL解决方案是:

从 Material -> 核心 -> NavigationItem.swift 中删除这些行:

public var title: String? {
    get {
        return titleLabel.text
    }
    set(value) {
        titleLabel.text = value
        navigationItem.reload()
    }
}

现在,除了修改源代码,你还可以使用这个:

navigationItem.titleLabel.text = "foo"