动作不工作 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
,除非它是计算的或延迟实例化的 属性.
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
,除非它是计算的或延迟实例化的 属性.