自定义 barbuttonItem 不显示

Posted

技术标签:

【中文标题】自定义 barbuttonItem 不显示【英文标题】:custom barbuttonItem doesn't show up 【发布时间】:2015-11-29 05:50:42 【问题描述】:

我在导航控制器上制作了一个自定义栏按钮项目,它工作正常,但现在不行了。 这是我用来制作自定义栏按钮的线条:

 func addSlideMenuButton()
        let btnShowMenu = UIButton(type: UIButtonType.Custom)
        //btnShowMenu.setImage(self.defaultMenuImage(), forState: UIControlState.Normal)
        btnShowMenu.setImage(UIImage(named: "barBtnMenu"), forState: UIControlState.Normal)
        btnShowMenu.frame = CGRectMake(0, 0, 30, 30)
        btnShowMenu.addTarget(self, action: "onSlideMenuButtonPressed:", forControlEvents: UIControlEvents.TouchUpInside)
        let customBarItem = UIBarButtonItem(customView: btnShowMenu)
       // self.navigationItem.rightBarButtonItem = customBarItem;
         self.navigationItem.leftBarButtonItem = customBarItem;
    

图像存在且没有错误或崩溃。

即使我从 soryboard 添加条形按钮项,当我运行应用程序时,它也会隐藏我的条形按钮项。

可能出了什么问题?

【问题讨论】:

也许是因为tintColor 它变得“隐形”了? @Islam Q 不,它没有。我通过单击按钮区域仔细检查它,那里根本没有按钮 【参考方案1】:
func addSlideMenuButton() 

    let customBarItem = UIBarButtonItem(image: UIImage(named: "barBtnMenu"), style: .Plain, target: self, action: "onSlideMenuButtonPressed")
    self.navigationItem.leftBarButtonItem = customBarItem;

【讨论】:

【参考方案2】:

想到几个选项

您确定没有在该 UIViewController 中的任何位置设置 navigationItem.hidesBackButton = true 吗? 您确定没有在系统提供的 UINavigationBar 之上添加另一个 UINavigationBar?

【讨论】:

以上是关于自定义 barbuttonItem 不显示的主要内容,如果未能解决你的问题,请参考以下文章

IOS - Swift - 向 BarButtonItem 的 customView 添加目标和操作

如何将全局 barButtonItems 添加到自定义 UINavigationBar?

为啥我必须在实现自定义左 barButtonItem 之前隐藏后退按钮项?

将自定义 BarButtonItem 添加到顶部导航栏

splitViewController 的 barButtonItem 未显示在屏幕上?

如何给 barbuttonitem 动作?