ios - 选择器不适用于我的 swift UIBarButtonItem

标签 ios swift selector

我正在编写一个待办事项列表类型的应用程序,以便快速学习 iOS 开发。我在右侧的导航栏上有一个设置按钮,每当有人单击表格 View 顶部的按钮时,他们就可以将新项目添加到他们的列表中。这会导致“取消”按钮出现在栏的左侧,而“添加”按钮出现在右侧。然而,当这个人完成后,这些按钮就会消失,所以我以编程方式重新创建了设置按钮,并调用了一个应该调用 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: 方法在包含这行代码的同一个类中。

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

关于ios - 选择器不适用于我的 swift UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32801849/

相关文章:

ios - Shopify 购买 SDK : Maintain cart items between view controllers

ios - 如何在 Swift 5 中将文档转换为自定义对象?

ios - 从 ChildViewController 添加的 ImageView 中的特殊上边距

jquery - 在隐藏的 div 中显示一个 div

swift - UIBarButtonItem 选择器不工作

ios - 无法识别的选择器发送到实例 - 仅限 Swift 4

iphone - NSURLConnection 固有的内存泄漏?

ios - 如何在 Swift 中隐藏继承的方法

ios - 使用 NSMutableParagraphStyle 会导致表情符号出现问题

ios - 从 NSString 转换为 Swift String 时文本被截断