【发布时间】:2017-06-02 17:00:04
【问题描述】:
我正在制作一个应用程序,如果特定日期已过,它会在启动应用程序后呈现一个视图控制器。问题是:它只是返回一个黑屏。 我已经测试了它将呈现的视图控制器设置为初始视图控制器并且它工作得很好;没有黑屏。因此,我的错误必须在代码中。
我在viewDidAppear()中调用这个函数:
if date.hasPassed {
presentView(fromDate: date)
}
这不是实际的代码,它更像是一个简化版本。在我的情况下,日期是数组中的自定义对象。该对象将其属性保存到 UserDefaults 以便它们可以显示在出现的视图控制器中。我的presentView(fromDate: date) 函数如下:
func presentView(fromDate: date) {
let vc = NewViewController()
let title = date.title ?? "My date"
let description = date.description ?? "My description"
UserDefaults.standard.set(title, forKey: "title")
UserDefaults.standard.set(description, forKey: "description")
UserDefaults.standard.synchronize()
self.present(vc, animated: true, completion: nil)
}
但是当实际调用这个函数时,它会显示一个黑屏而没有显示任何错误。你能告诉我为什么吗?
【问题讨论】:
-
NewViewController 中有什么?它可能只是一个空白的黑屏。
-
它只是一个带有一些标签的普通视图控制器......不要认为这是问题......
-
这段代码是从你的启动视图控制器执行的吗?您是否尝试过延迟执行?
-
是的...也没有用:(
-
因为你的 NewViewController 是一个自定义类。如果它在情节提要中,您可以在属性检查器中更改背景颜色。或者在自定义类的 viewDidLoad 中执行 view.backgroundColor = UIColor.green。或者从上面的代码中,在这行'let vc = NewViewController()'之后添加 vc.backgroundColor = UIColor.green
标签: ios swift viewcontroller