Here is an example of how you can solve this problem:
Create the UIBarButton Extension
extension UIBarButtonItem { /** Create custom right bar button for reduce space between right bar buttons */ func initRightButton(let imageNamed:String, let target:UIViewController, let selector:Selector) -> UIBarButtonItem { let frame = CGRectMake(0, 0, 30, 30) //Create imageView let imageView = UIImageView(frame:frame) imageView.image = UIImage(named: imageNamed) //Create Button let button = UIButton(frame: frame) button.addTarget(target, action: selector, forControlEvents: .TouchUpInside) //Create View and add imageView and Button let view = UIView(frame: frame) view.addSubview(imageView) view.addSubview(button) return UIBarButtonItem(customView: view) } }
In your class controller, use the customizeNavigationBar method
func customizeNavigationBar() { //Create custom right bar button chat for reduce space between right bar buttons let barButton1 = UIBarButtonItem().initRightButton("customImageNamed1", target: self, selector: customSelector) let barButton2 = UIBarButtonItem().initRightButton("customImageNamed2", target: self, selector: customSelector) self.navigationItem.rightBarButtonItems = [barButton1,barButton2] }
source share