Я пытаюсь создать большую часть кнопки программно, тогда, когда я нажимаю на каждую кнопку, она покажет мне значение тега кнопки в другом ViewController Метка.Swift - PrepareForSegue не может передать sender.tag (значение nil в другой метке 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
}
Я уже связал оба ViewController с помощью push segue. Однако, когда я нажимаю кнопку, метка в NextViewController показывает «nil». Если я изменю svc.toPass = "(tag)" до svc.toPass = "something", на этикетке будет указано "что-то". Возможно, есть проблемы с отправителем в функции prepareForSegue. Пожалуйста помоги. Спасибо.
Спасибо Антонио, это работает. – TheNewBie