Swift - 按下按钮时调用函数 - 无法识别的选择器发送到实例

时间:2015-08-20 17:14:36

标签: ios uibarbuttonitem swift2 unrecognized-selector

我使用swift以编程方式在工具栏中添加了一些按钮。我已经看过如何为按钮添加操作,我认为我正确地执行了操作,但显然我不是因为我不断发现"无法识别的选择器被发送到实例"当我按下按钮。我做错了什么?

以下是我如何将按钮添加到工具栏中:

func addButtonsToToolbar(view: UIView?)
{
    let userTrackingArrow = MKUserTrackingBarButtonItem(mapView: self.mapView)
    let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
    let refresh: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: view, action: "refreshbuttonTapped:")

    var items = [UIBarButtonItem]()
    items.append(userTrackingArrow)
    items.append(flexSpace)
    items.append(refresh)

    self.toolBar.items = items
}

这是我想用"刷新"按下按钮,但没有被调用。相反,我得到了#34;无法识别的选择器发送到实例"。

func refreshbuttonTapped(sender: AnyObject!)
{
    print("Button tapped")
}

2 个答案:

答案 0 :(得分:3)

尝试更改刷新按钮的目标:

let refresh: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: view, action: "refreshbuttonTapped:")

为:

let refresh: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "refreshbuttonTapped:")

答案 1 :(得分:0)

方法refreshbuttonTapped()必须在target类中实施,view

中作为参数传递的addButtonsToToolbar()