Используйте тег UIButton в разделе готовить - PullRequest
0 голосов
/ 02 июля 2019

У меня есть кнопка, которая после нажатия, выполняет переход, в этом выполнении я отправляю тег UIButton, с отправителем

@IBAction func nextBtn(_ sender: UIButton) {
    performSegue(withIdentifier: "more", sender: sender.tag)
}

, и в процессе подготовки я пытаюсь использовать эти теги, но, очевидно, я делаю это неправильно

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "more" {
        if let navigationVC = segue.destination as? UINavigationController, let openPDF = navigationVC.topViewController as? Morepage {
            let senderTag = (sender as? UIButton)?.tag
                if senderTag == 1 {
                  print(123)
                } else if senderTag == 2 {
                  print(123)
                }
            }
    }
}

senderTag отображается как ноль или ноль.Не могли бы вы помочь мне правильно использовать sender.tag в процессе подготовки.большое спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

SenderTag отображается как none или nil.

Проблема в том, как вы кодируете функцию nextBtn.

Не указывайте sender.tag как входящий параметр performSegue, но сам объект отправителя выглядит следующим образом:

@IBAction func nextBtn(_ sender: UIButton) {
    performSegue(withIdentifier: "more", sender: sender)
}

В функции prepare вы получаете этот объект и извлекаете его свойство тега: это сама кнопка.

0 голосов
/ 02 июля 2019

Вы можете проверить тег кнопки следующим образом.sender: будет sender не sender.tag

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "more" {
        if let navigationVC = segue.destination as? UINavigationController, let openPDF = navigationVC.topViewController as? Morepage {

                if yourButton.tag == 1 {
                  print(123)
                } else if yourButton.tag == 2 {
                  print(123)
                }
            }
    }
}

ИЛИ

  if sender.tag == 1 {
            print("Button 1 is pressed")
        }
...