我正在使用 Swift 2.2 开发我的第一个 iOS 应用程序,我遇到了以下问题。
在实用程序类中,我有以下静态方法,由一些不同的 UIViewController
调用。
static func setNavigationControllerStatusBar(myView: UIViewController, title: String, color: CIColor, style: UIBarStyle) {
let navigation = myView.navigationController!
navigation.navigationBar.barStyle = style
navigation.navigationBar.barTintColor = UIColor(CIColor: color)
navigation.navigationBar.translucent = false
navigation.navigationBar.tintColor = UIColor.whiteColor()
myView.navigationItem.title = title
let menuButton = UIBarButtonItem(image: UIImage(named: "menu"),
style: UIBarButtonItemStyle.Plain ,
target: self, action: #selector("Utils.menuClicked(_:)"))
myView.navigationItem.leftBarButtonItem = menuButton
}
func menuClicked(sender: UIButton!) {
// do stuff
}
我正在尝试以一些不同的方式为这个按钮关联一个#selector
,但是我总是有以下错误。
最佳答案
没有引号。
#selector(Utils.menuClicked(_:))
func menuClicked
应该在您的 View Controller 类中。但如果由于某种原因不是,你可以这样做
class Utils {
static let instance = Utils()
let menuButton = UIBarButtonItem(image: UIImage(named: "menu"),
style: UIBarButtonItemStyle.Plain ,
target: Utils.instance, action: #selector(Utils.menuClicked(_:)))
@objc func menuClicked(sender: UIBarButtonItem) {
// do stuff
}
}
关于ios - #UIBarButtonItem 上的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37951073/