Objective c 为什么';是否在viewDidLoad中执行标识符工作?
我试图在视图控制器上调用viewDidLoad后立即触发故事板序列。segue附加了一个标识符,当从链接到按钮或其他控件的方法内部调用时,它可以正常工作。但它在viewDidLoad中不起作用。它只是默默地失败了。在viewDidLoad中是否有忽略segue的规则 我试过这两种方法:Objective c 为什么';是否在viewDidLoad中执行标识符工作?,objective-c,ios,xcode,ios5,Objective C,Ios,Xcode,Ios5,我试图在视图控制器上调用viewDidLoad后立即触发故事板序列。segue附加了一个标识符,当从链接到按钮或其他控件的方法内部调用时,它可以正常工作。但它在viewDidLoad中不起作用。它只是默默地失败了。在viewDidLoad中是否有忽略segue的规则 我试过这两种方法: [self performSegueWithIdentifier: @"mySegue" sender: self]; 这是: [self dismissV
[self performSegueWithIdentifier: @"mySegue"
sender: self];
这是:
[self dismissViewControllerAnimated:YES completion:^() {
[self performSegueWithIdentifier:@"mySegue" sender:self];
}];
两者都不起作用。最可能的原因可能是操作系统在进行第二次屏幕转换调用时忽略了该调用。在ViewDidLoad中,(当前视图的)视图转换仍未完成。在转换完成之前,您正在请求另一个转换,而操作系统会忽略它。这一定是segue在从不同函数调用时工作的原因。尝试在ViewDidDisplay内部调用(或在一段时间延迟后调用)您不能关闭尚未显示的视图控制器
didLoad
具有纯粹的内存管理功能,您可以将其用作(构造器的一部分)。
可能有效的方法是在
viewdideappear
中启动一个序列,但是我建议从您第一次想要的视图开始 为什么要在另一个视图即将出现时加载另一个视图?您是否尝试过将其添加到“viewWillAppear”中(尽管我不明白您为什么要这样做)。