我试图执行从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