为什么我不能在 Swift 中设置我的 UINavigationController 的标题?

Why I cannot set a title of my UINavigationController in Swift?

我的应用程序中有一个 UINavigationController,我在其中添加了分段控件:

我还有一个按钮,当用户按下它时,我想隐藏分段控件并显示一个字符串。

我可以通过以下方式隐藏分段控件:

segmentedControl.hidden = true

它有效,但是当我在代码中写入时:

self.title = "test"

然后测试词没有出现。这里有什么问题,我该如何解决?

我相信你需要使用

self.navigationItem.title = "test"

我刚刚做了一个测试用例,它对我有用。

如果您已经设置了 titleView of navigationItem 并尝试设置 title 那么您需要先将 titleView 设置为 nil 然后再设置它将在 NavigationBar.

上显示您的标题
self.navigationItem.titleView = nil
self.navigationItem.title = "Test"

编辑: 要取回 SegmentedControl 的实例,您需要先像这样从 titleView 存储实例。

self.segmentedControl = self.navigationItem.titleView as! UISegmentedControl
self.navigationItem.titleView = UIView() //Set blank view so it will not nil the object of SegmentedControl
self.navigationItem.titleView = nil
self.navigationItem.title = "Test"