繁体   English   中英

为什么不在viewDidLoad中执行SegueWithIdentifier工作?

[英]Why doesn't performSegueWithIdentifier work inside viewDidLoad?

一旦在视图控制器上调用viewDidLoad,我就试图触发故事板segue。 segue附加了一个标识符,当从链接到按钮或其他控件的方法内部调用时,它可以正常工作。 但它在viewDidLoad中不起作用。 它只是默默地失败了。 在viewDidLoad中是否有一些关于segue被忽略的规则?

我试过这两个:

[self performSegueWithIdentifier: @"mySegue" 
                          sender: self];

还有这个:

[self dismissViewControllerAnimated:YES completion:^() {
[self performSegueWithIdentifier:@"mySegue" sender:self];
}];

都没有工作。

您无法关闭尚未显示的视图控制器。 didLoad具有纯粹的内存管理功能,您可以将其用作(部分)构造函数。 可能有用的是在viewDidAppear启动一个segue,但是我建议在第一次开始时使用你想要的视图。

最可能的原因可能是操作系统在进行中时忽略了第二个屏幕转换调用。 在ViewDidLoad中,视图转换(当前视图)仍未完成。 您在完成之前要求另一个转换,操作系统会忽略它。 它必须是从不同函数调用时segue工作的原因。 尝试在ViewDidAppear内部调用(或延迟一段时间后)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM