【发布时间】:2017-10-30 15:50:22
【问题描述】:
我在 VC A 上,我以编程方式转到 vc B,然后 VC B 没有转至 VC C (perform(segueWithIdentifier:)crashes)。
但是如果我使用 segue 去 VC B,然后我可以调用 segue 去 VC C。
这是我崩溃的代码:
VCA:
// Method A (that does not crash)
// self.performSegue(withIdentifier: "gotoB", sender: self)
// Method B (that crashes)
let dst = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "vcB")
if let navigator = navigationController {
navigator.pushViewController(vc, animated: true)
}
VCB:
self.performSegue(withIdentifier: "gotoC", sender: self) // crashes here
问题是我希望能够从任何地方访问 VC B,因此使用导航控制器进行编程推送。我想了解为什么会发生这种情况以及如何实现我想要的。谢谢。
【问题讨论】:
-
你注册了segue标识符“gotoC”吗
-
什么是崩溃日志?
-
@srinivasn 是的,我有转场
gotoC,因为当我使用转场从A转到B时它可以工作。但是,当我使用navigationControler推送B时,它会崩溃。 -
@NiravD 它说没有找到segue(即使它存在于我的故事板上)。
-
@Dliix 检查segue的目的地
gotoB和该控制器的storyboardIdentifier是vcB或其他东西。
标签: ios swift uinavigationcontroller segue