一旦在视图控制器上调用viewDidLoad,我就试图触发故事板segue。 segue附加了一个标识符,当从链接到按钮或其他控件的方法内部调用时,它可以正常工作。但它在viewDidLoad中不起作用。它只是默默地失败了。在viewDidLoad中是否有一些关于segue被忽略的规则?
我已经尝试过这两个:
[self performSegueWithIdentifier: @"mySegue"
sender: self];
和此:
[self dismissViewControllerAnimated:YES completion:^() {
[self performSegueWithIdentifier:@"mySegue" sender:self];
}];
都没有工作。
答案 0 :(得分:21)
您无法关闭尚未显示的视图控制器。 didLoad
具有纯粹的内存管理功能,您可以将其用作(部分)构造函数。
可能有效的方法是在viewDidAppear
中启动一个segue,但我建议首先从你想要的视图开始。
答案 1 :(得分:1)
最可能的原因可能是操作系统忽略了第二个屏幕转换调用,而其中一个正在进行中。在ViewDidLoad中,视图转换(当前视图)仍未完成。您在完成之前要求另一个转换,操作系统会忽略它。它必须是从不同函数调用时segue工作的原因。尝试在ViewDidAppear内部调用(或延迟一段时间后)