Все, что я сделал, это вызвать новый контроллер в текущем контексте, когда я касаюсь в течение длительного времени (UILongPressGestureRecognizer). Вот код:Попытка представить, который уже присутствует
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!{
didSet{
button.addGestureRecognizer(UILongPressGestureRecognizer(target: self,
action: #selector(settingTheButton(_:))))
}
}
func settingTheButton(_ recognizer: UILongPressGestureRecognizer){
print("touchTheColorButton was called") // here the method invokes twice
if let button = recognizer.view as? UIButton{
performSegue(withIdentifier: "setTheButtonColor", sender: button)
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?){
if segue.identifier == "setTheButtonColor", let vc = segue.destination as? SettingsForButtonVC, let senderButton = sender as? UIButton {
vc.button = senderButton
}
}
}
Я не понимаю. Почему метод setTheButton вызывается дважды? Это не мешает или не вредит программе, но меня это действительно беспокоит.
консоли: touchTheColorButton называлась touchTheColorButton называлась 2017-02-18 01: 28: 12.499552 тест [1042: 223223] Внимание: Попытка представить, на котором уже представляя
Измените отправителя segue на себя и удалите кнопку метода prepareForSegue. – Mannopson