的UIBarButtonItem没有出现在UIToolbar斯威夫特起来(UIBarButtonIt

2019-10-21 03:32发布

我与工具栏enabled.I导航控制器具有与被嵌入在导航控制器的的MKMapView视图控制器。 当我在模拟器中运行它的工具栏上显示出来。 然而,当我尝试从代码中添加的UIBarButtonItem的的UIBarButtonItem不会在工具栏上显示出来。 要添加按钮,我有下面的代码在我的viewDidAppear方法:

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

什么任何想法是怎么了?

Answer 1:

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

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

此属性包含由导航控制器管理的内置工具栏的参考。 仅对于想现在从工具栏的动作片的客户提供此工具栏访问。 你不应该直接修改UIToolbar对象。 这个工具栏的内容管理是通过与该导航控制器关联的自定义视图控制器来完成。 对于导航堆栈上的每个视图控制器,你可以指定的使用setToolbarItems工具栏项一组自定义:动画:UIViewController中的方法。

此工具栏的可见性由toolbarHidden属性控制。 工具栏也遵循当前可见视图控制器和兽皮的hidesBottomBarWhenPushed属性,并根据需要自动显示本身。

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



文章来源: UIBarButtonItem not showing up on UIToolbar Swift