12

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

我已经尝试了这两个:

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

和这个:

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

都不工作。

4

2 回答 2

21

您不能关闭尚未呈现的视图控制器。didLoad具有纯粹的内存管理功能,您可以将其用作(a 的一部分)构造函数。什么可能有效,是在 中开始一个 segue viewDidAppear,但是我建议从你想要的视图开始。

于 2012-04-25T03:08:28.203 回答
1

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

于 2012-04-25T03:04:43.257 回答