它是这样的:
var i = 0
button.addTarget(self, action:"showContent", forControlEvents: UIControlEvents.TouchUpInside)
和功能" showContent"是这样的:
func showContent(i: Int) {
//do sth.
}
我想在触摸该按钮时将变量i传递给函数showContent,我该怎么办?
答案 0 :(得分:0)
在目标行动模式中,您无法做到这一点。您可以使用"showContent"
,在这种情况下,您的功能将是:
func showContent() {
}
...或者您可以添加冒号("showContent:"
),在这种情况下您的函数将是:
func showContent(sender : UIButton) {
// do something with sender
}
这有助于强化更广泛的模型/视图/控制器模式,使您的视图难以“智能”#34;相反,您的模型和控制器对象应该处理i
。一个按钮只显示它所说的内容,并告诉控制器何时点击它。
您可以阅读i
,并以适当的方法回复它。例如:
class ViewController : UIViewController {
var i = 0
var button = UIButton(type: .System)
var label = UILabel()
override func viewDidLoad() {
button.addTarget(self, action:"showContent", forControlEvents: UIControlEvents.TouchUpInside)
}
func showContent() {
i++
label.text = "Current value of i: \(i)"
}
}