Ios 选择器不在处理我的快速UIBarbuttonim

Ios 选择器不在处理我的快速UIBarbuttonim,ios,swift,selector,Ios,Swift,Selector,我正在编写一个待办事项列表类型的应用程序,以便学习iOS开发的swift。我在导航栏的右侧有一个设置按钮,每当有人单击表视图顶部的按钮时,他们都可以向列表中添加一个新项目。这将导致“取消”按钮出现在工具栏的左侧,而“添加”按钮出现在右侧。但是,当这个人完成时,这些按钮消失了,因此我通过编程重新创建了设置按钮,调用了一个应该调用segue的函数 self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named

我正在编写一个待办事项列表类型的应用程序,以便学习iOS开发的swift。我在导航栏的右侧有一个设置按钮,每当有人单击表视图顶部的按钮时,他们都可以向列表中添加一个新项目。这将导致“取消”按钮出现在工具栏的左侧,而“添加”按钮出现在右侧。但是,当这个人完成时,这些按钮消失了,因此我通过编程重新创建了设置按钮,调用了一个应该调用segue的函数

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "modify"), style: UIBarButtonItemStyle.Plain, target: nil, action: Selector("showSettings:"))
这是在导航栏上创建按钮的代码(它确实已创建)

这是应该调用segue的函数(我添加了print以查看它是否至少被调用,而不是)

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


任何帮助都很好。

您的
显示设置:
选择器没有被调用,因为您为条形按钮项的目标指定了
nil
,而不是
self
。将行更改为:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "modify"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("showSettings:"))
这假设
showSettings:
方法与包含这行代码的类相同


阅读此初始值设定项的文档,特别是有关
目标
参数的信息。

@LeoDabus虽然你是对的,我也应该这样做,但它实际上没有改变任何东西,这让我感到奇怪。图像已经显示了。是的,这确实解决了问题。但即使我的
showSettings
函数没有任何参数(我使用“showSettings”作为选择器),它也不起作用。segue发送器是否必须与
nil
不同?我在另一个地方使用它(正如问题中提到的),它没有任何参数,函数也没有被调用。这让我很困惑,因为我用它创建了带有
target:nil
的“添加”和“取消”按钮,它们工作得很好。将
self
而不是
nil
传递给
UIBarButtonItem
初始值设定项与传递给您的
showSettings:
方法的
sender
参数毫无关系,与segue也毫无关系。为什么我的其他UIBarButtonItems在有目标的情况下工作
nil
,而另外两个没有?有什么想法吗?他们不可能有。如果将
nil
作为
target
传递,则永远不会调用
选择器。除非将
target
设置为一个适当的非零值,否则不能执行。这可能是Swift的错误吗?像这样的?因为它们的工作方式完全符合预期,即使我的目标是零。我现在要改变这一点,以避免将来出现问题,但它们工作得很好。无论如何,谢谢你的帮助:)
self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "modify"), style: UIBarButtonItemStyle.Plain, target: self, action: Selector("showSettings:"))