2.0 स्विफ्ट के लिए, निम्नलिखित प्रभाव प्राप्त करने के लिए यह मेरा समाधान था ...
(आपकी स्थिति के आधार पर वास्तविक मूल्य भिन्न हो सकते हैं)
let captureButton = UIButton()
captureButton.setTitle("CAPTURE DETAILS", forState: .Normal)
captureButton.frame = CGRectMake(0, 0, 200, 95)
captureButton.addTarget(self, action: Selector("showCaptureDetailsForm:"), forControlEvents: .TouchUpInside)
captureButton.setBackgroundImage(UIImage(named: "blueTopRight"), forState: .Normal)
let rightBarButton = UIBarButtonItem()
rightBarButton.customView = captureButton
let negativeSpacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FixedSpace, target: nil, action: nil)
negativeSpacer.width = -25;
self.navigationItem.setRightBarButtonItems([negativeSpacer, rightBarButton ], animated: false)
स्विफ्ट 2.2 अद्यतन:
स्विफ्ट 2.2 के लिए, action: Selector
विधि बदल गई है, और निम्नानुसार टाइप किया जाना चाहिए
captureButton.addTarget(self, action: #selector(YourViewController.showCaptureDetailsForm(_:)), forControlEvents: .TouchUpInside)