我尝试以编程方式从一个视图到另一个视图执行segue,在它被加载之后(服务器发送命令继续)但是它不会发生因为"其视图不是在视图层次结构"。关于如何解决它的任何想法?
P.S。我没有从viewDidLoad()方法执行任何segue,所有这些都是从一个方法执行的,该方法也是从这个类中的另一个方法调用的(它读取从服务器发送的字典)。我还试图像这样执行segues
dispatch_async(dispatch_get_main_queue(), {
self.performSegueWithIdentifier("seg_wait_ready", sender: self)
})
就像这样(即使我知道这是错的):
performSegueWithIdentifier("seg_wait_ready", sender: self)
这些都不起作用,我仍然得到同样的警告。
答案 0 :(得分:0)
我通过更改应用程序更改VC的逻辑来解决此问题。现在我通过代理直接执行以下操作(粗略地):
delegate.window!.rootViewController = destinationViewController
它花了我所有的系统转换动画,但无论如何我喜欢做自定义的动画。但请记住将其保留在主队列中。为了安全起见,请将其手动放入主队列中,如下所示:
dispatch_async(dispatch_get_main_queue(), {delegate.window! ... })