选择器不适用于我的 swift UIBarButtonItem

Selector not working on my swift UIBarButtonItem

我正在编写一个待办事项列表类型的应用程序,以便学习 swift 以进行 iOS 开发。我在右侧的导航栏上有一个设置按钮,每当有人单击 table 视图顶部的按钮时,他们就可以将新项目添加到他们的列表中。这会导致 "cancel" 按钮出现在栏的左侧,"add" 按钮出现在右侧。然而,当这个人完成后,这些按钮消失了,所以我以编程方式重新创建设置按钮,调用一个应该调用 segue 的函数。

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "modify"), style: UIBarButtonItemStyle.Plain, target: nil, action: Selector("showSettings:"))

这是在导航栏上创建按钮的代码(确实已创建)

 func showSettings(sender: AnyObject?) {
    print("segueShouldBeDone!")
    performSegueWithIdentifier("showSettings", sender: sender)
}

这是应该调用 segue 的函数(我添加了打印以查看它是否至少被调用,但实际上没有)。

我在我的代码的另一个地方遇到了同样的问题,但我已经放弃修复它,因为它对我来说并不那么重要。但现在它干扰了应用程序的工作方式,所以我想知道如何解决它。

任何帮助都会很棒。

您的 showSettings: 选择器未被调用,因为您为栏按钮项目的目标指定了 nil 而不是 self。将行更改为:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "modify"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("showSettings:"))

这里假设 showSettings: 方法与包含这行代码的 class 相同。

阅读此初始化程序的文档,特别是有关 target 参数的信息。