我試圖執行從ViewController A到ViewController A(相同的VC)segue。我可以做到這一點,當我按Ctrl +從一個按鈕拖動到VC並設置標識符(在我的情況下「相同的VC」)。performSegue從委託方法相同的ViewController
點擊該按鈕時,segue按預期工作。問題是,我需要致電
self.performSegue(withIdentifier: "sameVC", sender: self)
來自代表。因此,當按鈕被竊聽,我需要調用一個函數,有一個代表,像這樣:
class ViewControllerA: ViewController, MyDelegate {
var mC = MyClass()
override func viewDidLoad() {
mC.delegate = self
}
@IBAction func buttonTapped(_ sender: UIButton) {
mC.myfunc()
}
func success {
// Trying to call delegate
self.performSegue(withIdentifies: "sameVC", sender: self)
}
}
protocol MyDelegate {
func success()
}
class MyClass {
var delegate: MyDelegate?
func myfunc() {
// ...
self.delegate.success()
}
}
當委託回來ViewControllerA在「成功」功能全,我要執行的SEGUE,但視圖不再存在,因爲segue被稱爲「buttonTapped」功能的隱式。
當segue不會去相同的VC,我只會按Ctrl +從ViewControllerA拖到ViewControllerB,但這是不可能的只有一個ViewController(或我不知道如何做到這一點)。
有什麼辦法可以實現這個目標嗎?
評論人Hassan Eskandari的作品:http://stackoverflow.com/questions/42482380/performsegue-to-same-viewcontroller-from-delegate-method#comment72106011_42482455 – IceCoala