我尝试以编程方式创建大量的按钮,然后当我点击每个按钮时,它将在另一个 ViewController 标签中显示按钮标记的值。
我的创建按钮的代码:
for index in 0..<ID.count {
let button = UIButton.buttonWithType(UIButtonType.System) as UIButton
button.tag = ID[index]
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)}
我的按钮动作函数:
func buttonAction(sender:UIButton!)
{
self.performSegueWithIdentifier("segueIdentifier", sender: self)
}
我的prepareForSegue函数:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if (segue.identifier == "segueIdentifier") {
var svc = segue.destinationViewController as NextViewController;
var tag = sender.tag
svc.toPass = "\(tag)"
}
}
我的代码在NextViewController中:
var toPass: String!
@IBOutlet var testLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
testLabel.text = toPass
}
我已经使用push segue将两个视图控制器连接起来。但是,当我点击按钮时,NextViewController中的标签显示为“nil”。 如果我更改svc.toPass = "(tag)"为svc.toPass = "something",标签将显示“something”。可能是prepareForSegue函数中的发送方存在问题。请帮忙看看。谢谢。