【问题标题】:Why I cannot set a title of my UINavigationController in Swift?为什么我不能在 Swift 中设置 UINavigationController 的标题?
【发布时间】:2016-09-19 23:44:37
【问题描述】:

我的应用中有一个UINavigationController,我在那里添加了分段控件:

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

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

segmentedControl.hidden = true

它可以工作,但是当我写代码时:

self.title = "test"

那么测试词就不会出现。这里有什么问题,我该如何解决?

【问题讨论】:

    标签: ios swift uinavigationcontroller uisegmentedcontrol


    【解决方案1】:

    如果您已经设置了navigationItemtitleView 并尝试设置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"
    

    【讨论】:

    • 你能告诉我如何回到那里显示的segmentedControl吗?我试过self.navigationItem.titleView = mySegmentedControl,但它没有出现,test 这个词仍然可见......
    • 为此,您需要先存储 segmentedcontrol 的实例,然后再将其设置为 nil。
    • 嗯,你能给我一些更深入的了解吗?听起来很合理,但我不知道如何在 Swift 中做到这一点 :(
    【解决方案2】:

    相信你需要使用

    self.navigationItem.title = "test"
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-22
      • 2010-10-17
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      相关资源
      最近更新 更多