动作不起作用UIBarButtonItem

时间:2015-01-22 16:31:48

标签: ios swift 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
}

以上代码嵌入在地图导航控制器中。这个动作没有任何效果,任何想法为什么(我都没有看到"在控制台中显示"?)

1 个答案:

答案 0 :(得分:4)

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

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

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