【发布时间】:2018-11-19 12:11:48
【问题描述】:
我有控制器 B,它使用委托模式将数据发送回控制器 A,但由于某种原因我的 segue 没有触发。
有什么东西阻止了我的 segue 被触发吗?我该如何解决这个问题?
控制器 B - 模态显示
@IBAction func addButton(_ sender: Any) {
delegate?.select(sID: selectedID)
dismiss(animated: true, completion: nil)
}
控制器A
func select(sID: String) {
performSegue(withIdentifier: "editSegue", sender: self);
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "editSegue" {
if let destinationVC = segue.destination as? NewController {
destinationVC.selectedQueryID = selectedQueryID;
print(“test”);
}
}
if segue.identifier == "selectSegue" {
if let destinationVC = segue.destination as? ControllerB {
destinationVC.queryID = selectedQueryID;
destinationVC.delegate = self;
}
}
}
控制器 C - 以模态方式呈现(不呈现自身)
【问题讨论】:
-
是
NewControllerController-C 吗?你如何展示控制器-B?您是否正确设置了delegate? -
对不起,我省略了准备函数的一部分。是的,
NewController是控制器 C。我正在正确显示 ContrB,单击addButton函数后,它成功将数据发送回 ContrA。