ios - Segue 上的 "whose view is not in view hierarchy"

标签 ios swift segue uiview-hierarchy

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

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

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

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

performSegueWithIdentifier("seg_wait_ready", sender: self)

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

最佳答案

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

delegate.window!.rootViewController=destinationViewController

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

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

关于ios - Segue 上的 "whose view is not in view hierarchy",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317721/

相关文章:

ios - 当表格 View 太大而无法显示在屏幕上时,打印表格 View 的所有行

ios - iPad 应用程序在加载 30 多张图像后崩溃

ios - 如何设置文本字段字符限制 SwiftUI?

swift - 在 Swift 中创建一个包含多个数组的数组

objective-c - UITableViewCell 中的可编辑文本字段

ios - SKNode.nodesAtPoint 的顺序有保证吗?

ios - 来自 UICollectionView Cell 的 Swift 3 Segue

ios - Xcode 显示加载 View ,直到加载第二个 View (在 segue show 上)

ios - UISplitViewController:如何从 Detail 返回到 Master

ios - 在 iOS 中从 Facebook 获取个人资料照片