从 navigationItem 中删除项目以编程方式显示 navigationItems 标题

Posted

技术标签:

【中文标题】从 navigationItem 中删除项目以编程方式显示 navigationItems 标题【英文标题】:remove item from navigationItem to display navigationItems title programmatically 【发布时间】:2017-01-19 16:53:27 【问题描述】:

我的 NavigationItem 中心有一个 UISegmentedControl。当权限较少的用户登录到应用程序时,segmentedControl 应该被隐藏,而不是显示 navigationItem 的标题。

我尝试使用.isHidden = true,但标题不会显示。

什么是实现这一目标的好方法?当然,如果您以管理员身份注销并登录,您应该会再次看到 segmentedControl。

【问题讨论】:

【参考方案1】:

假设 UISegmentedControl 是通过 navItem.titleView 设置的...

override func viewDidLoad() 
    title = "My Title"
    if userHasRights 
        let segmentedControl = UISegmentedControl()
        // Setup segmented control...
        navItem.titleView = segmentedControl
    

在导航项上设置 .titleView 应该覆盖在视图控制器上设置的标题。

【讨论】:

我将segmentedControl通过storyboard放到titleView中。我只是将它拖到更远的顶部,这使得它可以与您的解决方案一起使用谢谢!

以上是关于从 navigationItem 中删除项目以编程方式显示 navigationItems 标题的主要内容,如果未能解决你的问题,请参考以下文章

删除相应项目时以编程方式删除 App Widget

java 以编程方式从菜单中删除项目。 |||链接:https://stackoverflow.com/questions/7133141/android-changing-option-menu-i

如何以编程方式从 SwiftUI 列表中删除行并刷新列表视图?

iOS11 SearchController - 从 navigationItem 中移除 SearchBar 会留下损坏的 UI

如何设置navigationItem titleView的按钮?

以编程方式从通知托盘中删除 UILocalNotification