0

我尝试在加载后(服务器发送命令继续)以编程方式从一个视图到另一个视图执行 segue,但它不会发生,因为“谁的视图不在视图层次结构中”。关于如何解决它的任何想法?

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

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

就像这样(即使我知道这是错误的):

performSegueWithIdentifier("seg_wait_ready", sender: self)

这些都不起作用,我仍然得到同样的警告。

4

1 回答 1

0

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

delegate.window!.rootViewController = destinationViewController

它花费了我所有的系统过渡动画,但我还是喜欢做自定义动画。但请记住将其保留在主队列中。为了安全起见,手动将其放入主队列中,如下所示:

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

于 2016-01-10T11:23:40.960 回答