สำหรับ Swift 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)
อัปเดต Swift 2.2:
สำหรับ Swift 2.2 action: Selector
วิธีการมีการเปลี่ยนแปลงและควรพิมพ์ดังนี้
captureButton.addTarget(self, action: #selector(YourViewController.showCaptureDetailsForm(_:)), forControlEvents: .TouchUpInside)