如何将UIView添加到navigationItem.backBarButtonItem中

时间:2018-03-31 11:59:48

标签: ios swift3

我正在尝试实现此just like Whats App

这是我的代码

    let contactName=UILabel()
    contactName.text=chat?.Name
    contactName.font=UIFont(name: "System", size: 17)
    contactName.sizeToFit()
    let contactImg=UIImageView()
    contactImg.image=UIImage(named: (chat?.Image)!)
    contactImg.frame.size.width=20
    contactImg.frame.size.height=20
    contactImg.layer.cornerRadius=contactImg.frame.height/2
    let backButtonView=UIView()
    backButtonView.addSubview(contactImg)
    backButtonView.addSubview(contactName)
    backButtonView.frame.size.width=20+contactName.frame.width
    backButtonView.frame.size.height=max(contactImg.frame.height,contactName.frame.height)
    navigationItem.backBarButtonItem=UIBarButtonItem(customView: backButtonView)

但是当我运行app时,它会显示默认的后退按钮 enter image description here

我在这里做错了什么,请指导。

2 个答案:

答案 0 :(得分:0)

google guice

答案 1 :(得分:0)

Aditya是对的,但这里有一点解释。来自Apple文档:

  

配置条形按钮项目时,不要为其指定自定义视图;导航项无论如何都会忽略后栏按钮中的自定义视图。

https://developer.apple.com/documentation/uikit/uinavigationitem/1624958-backbarbuttonitem

此外,UIBarButtonItem是“...专门用于放置在工具栏或标签栏上。您通常使用Interface Builder来创建和配置栏按钮项。”

https://developer.apple.com/documentation/uikit/uibarbuttonitem