选择器不适用于我的 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
参数的信息。
我正在编写一个待办事项列表类型的应用程序,以便学习 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
参数的信息。