动作不工作 UIBarButtonItem

Action not working UIBarButtonItem

func showFilterPanel() {
    println("Showing")
}

let backButton = UIBarButtonItem(title: "Horse", style: UIBarButtonItemStyle.Plain, target: nil, action: "showFilterPanel")

@IBAction func tapGesture(sender: AnyObject) {
    self.navigationItem.leftBarButtonItem = self.backButton
}

以上代码嵌入到地图导航控制器中。该操作没有效果,知道为什么吗(我在控制台中没有看到 "Showing")?

您将 nil 作为选择器的目标。在这种情况下应该是 self

let backButton = UIBarButtonItem(title: "Horse", style: UIBarButtonItemStyle.Plain, target: nil, action: "showFilterPanel")

您还需要重新安排它以将 UIBarButtonItem 的实例化向下移动到方法范围,以便能够在其实例化中引用 self。当您在 Swift 中创建 属性 时,您不能在创建时引用其他属性或 self,除非它是计算的或延迟实例化的 属性.