UIBarButtonItem没有出现在UIToolbar Swift上

时间:2014-10-18 19:03:14

标签: xcode swift uibarbuttonitem

我有一个启用了工具栏的导航控制器。我有一个带有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 个答案:

答案 0 :(得分:2)

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

  

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

     

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

     

此工具栏的可见性由toolbarHidden控制   属性。工具栏还遵循hidesBottomBarWhenPushed属性   当前可见的视图控制器和隐藏并显示自身   根据需要自动生成。

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