将多个自定义栏button添加到自定义导航栏

我需要在Swift的自定义导航栏的每一端添加两个栏button项。 我正在使用下面的方法,虽然我没有得到任何的错误,但一点都没有出现。 我使用自己的自定义图标,当我使用界面生成器添加它们时会出现这些图标。 很显然,我只能以这种方式在每一端添加一个。

@IBOutlet weak var navBar: UINavigationBar! override func viewDidLoad() { var iconOne = UIImage(named: "iconOne") var iconTwo = UIImage(named: "iconTwo") var buttonOne:UIBarButtonItem = UIBarButtonItem(image: iconOne, style: UIBarButtonItemStyle.Plain, target: self, action: nil) var buttonTwo:UIBarButtonItem = UIBarButtonItem(image: iconTwo, style: UIBarButtonItemStyle.Plain, target: self, action: nil) self.navBar.setItems([buttonOne,buttonTwo], animated: true) } 

这是在embedded导航控制器的视图控制器中实现的。 我可以使用self.navigationItem.setRightBarButtonItems([buttonOne, buttonTwo], animated: true)如果我不使用自定义导航栏。 什么是解决方法?

UIBarButtonItem可以使用自定义视图来创build

  • 创build一个视图
  • 添加UIButtons到它
  • 布置它
  • 用自定义视图创build一个UIBarButtonItem
  • 将其添加到导航栏

这段代码适用于我:

 @IBOutlet weak var navBar: UINavigationBar! @IBOutlet weak var navBarItem: UINavigationItem! func displayTextInNavBar(text: String) { let labelWidth: CGFloat = navBar.frame.width / 6 let frame = CGRect(x: 0, y: 0, width: labelWidth, height: navBar.frame.height) let label = UILabel(frame: frame) label.textAlignment = .Right label.textColor = UIColor(red: 0/255, green: 127/255, blue: 0/255, alpha: 1) label.font = UIFont(name: "Bradley Hand", size: 20) label.text = text let navBarButtonItem = UIBarButtonItem(customView: label) navBarItem.rightBarButtonItem = navBarButtonItem } 

以上在navBar的右侧放置了一个标签。 如果您想要一个可点击的实际button,请改为:

 let navBarButtonItem = UIBarButtonItem(title: text, style: .Plain, target: self, action: nil) 

如果你想要那个button实际上做了点击事情,而不是nil指定一些function。