我所做的所有工作就是在長時間觸摸時調用新控制器(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