我所做的所有工作就是在长时间触摸时调用新控制器(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年2月18日01:28:12.499552测试[1042:223223]警告:试图提出在已经呈现
将segue的发件人更改为self,并删除您的prepareForSegue方法的按钮。 – Mannopson