"whose view is not in view hierarchy" 继续

"whose view is not in view hierarchy" on Segue

我尝试以编程方式执行从一个视图到另一个视图的 segue,在加载它之后(服务器发送继续命令)但它不会发生,因为 "whose view is not in view hierarchy"。关于如何解决它的任何想法?

P.S。我没有从 viewDidLoad() 方法执行任何 segues,所有这些都是从一个方法执行的,该方法也是从这个 class 中的另一个方法调用的(它读取从服务器发送的字典)。我也试过像这样执行 segues

dispatch_async(dispatch_get_main_queue(), {
     self.performSegueWithIdentifier("seg_wait_ready", sender: self)
})

就像这样(尽管我知道这是错误的):

performSegueWithIdentifier("seg_wait_ready", sender: self)

None 这些工作,我仍然收到相同的警告。

我通过更改我的应用程序如何更改 VC 的逻辑解决了这个问题。现在,我通过执行以下操作(大致)直接通过委托来完成此操作:

delegate.window!.rootViewController = destinationViewController

我花了所有的系统过渡动画,但我还是喜欢做自定义的。但是记得把它放在主队列中。为了安全起见,像这样手动将其放入主队列中:

dispatch_async(dispatch_get_main_queue(), {delegate.window! ... })