UIBarButtonItem 没有出现在 UIToolbar Swift 上

Posted

技术标签:

【中文标题】UIBarButtonItem 没有出现在 UIToolbar Swift 上【英文标题】:UIBarButtonItem not showing up on UIToolbar Swift 【发布时间】:2014-10-18 19:03:13 【问题描述】:

我有一个启用了工具栏的导航控制器。我有一个视图控制器,它带有嵌入在导航控制器中的 MKMapView。当我在模拟器中运行它时,工具栏就会出现。但是,当我尝试从代码中添加 UIBarButtonItem 时,UIBarButtonItem 不会显示在工具栏上。要添加按钮,我的 viewDidAppear 方法中有以下代码:

var trackingButton:MKUserTrackingBarButtonItem = MKUserTrackingBarButtonItem(mapView: self.theMapView)
    self.navigationController?.toolbarItems?.append(trackingButton)
    //self.toolbarItems?.append(trackingButton) also doesn't work

对出了什么问题有任何想法吗?

【问题讨论】:

【参考方案1】:

这是预期的功能。根据文档:

与导航控制器关联的自定义工具栏。 (只读)

此属性包含对由管理的内置工具栏的引用 导航控制器。仅提供对此工具栏的访问 对于想要从工具栏显示操作表的客户。你 不应直接修改 UIToolbar 对象。对此的管理 工具栏的内容是通过自定义视图控制器完成的 与此导航控制器关联。对于每个视图控制器 在导航堆栈上,您可以分配一组自定义工具栏项 使用 UIViewController 的 setToolbarItems:animated: 方法。

此工具栏的可见性由工具栏隐藏控制 财产。工具栏也遵循 hidesBottomBarWhenPushed 属性 当前可见的视图控制器并隐藏和显示自己 根据需要自动进行。

换句话说,你不能做navigationController.toolbar.setItems。您必须使用 navigationControllers 方法(即):navigationController.setToolbarItems

【讨论】:

以上是关于UIBarButtonItem 没有出现在 UIToolbar Swift 上的主要内容,如果未能解决你的问题,请参考以下文章

UIToolbar Items 和 UIBarButtonItem 没有出现在模拟器中或被切断,我错过了啥吗?

添加到情节提要的 UIBarButtonItem 在运行时不会出现

带有customView的自动布局iOS 11工具栏UIBarButtonItem

UIBarButtonItem 的默认后退按钮背景图像出现在我的自定义

UISearchController 禁用取消 UIBarButtonItem

在 KeyboardDidShow 上切换 UIBarButtonItem