【发布时间】:2017-10-25 13:02:29
【问题描述】:
开始一些关于我的设置的信息:我有一个带有 3 个视图和 3 个视图控制器的故事板,每个视图都附加一个。
我正在使用 self.performSegue(withIdentifier: "bookingSuccess", sender: nil) 从 DataTask(http 请求)的完成处理程序中切换视图。为了能够传递一些数据,我使用了准备函数,我将 ViewModel 分配给目标控制器。
之后,我在 ViewDidLoad() 函数中准备了一些 UI 内容,并在 ViewWillAppear() 方法中为我的标签分配值。
这很好用,但是当视图切换时,一半的 UI 元素不显示,并且按钮文本也不存在。在某些情况下,我不知道(大多数情况下,只需等待几秒钟或在不关闭应用程序的情况下重新打开,这些元素就会突然出现。 我尝试了很多不同的东西,但没有任何效果。有时会在开头显示一个标签,但我不知道为什么它不显示。我的 IOS 目标版本是 IOS 10 或 IOS 11.0.1/3
这是两个屏幕图像: Directly after switching the View
【问题讨论】:
-
确保在主线程上调用了
self.performSegue(withIdentifier: "bookingSuccess", sender: nil),这听起来像是在后台线程上做 UI 工作 -
您好,感谢您的快速回答,我尝试使用 DispatchQueue.main.sync { self.performSegue(withIdentifier: "bookingSuccess", sender: nil) } 但它不起作用
-
做
async而不是sync -
工作正常,非常感谢!!!疯狂的@Ladislav
-
好的,将其添加为答案,以便其他人可以从中受益