Car*_*tti 2 viewcontroller ios swift
我正在制作一个应用程序,如果特定日期已过,则会在启动应用程序后显示一个视图控制器。问题是:它只是返回黑屏。我已经测试了它,将呈现的视图控制器设置为初始视图控制器,并且它工作得很好;没有黑屏。因此,我的错误一定是在代码中。
我在以下位置调用这个函数viewDidAppear():
if date.hasPassed {
presentView(fromDate: date)
}
Run Code Online (Sandbox Code Playgroud)
这不是实际的代码,它更像是一个简化版本。在我的例子中,日期是数组中的自定义对象。该对象将其属性保存到 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)
}
Run Code Online (Sandbox Code Playgroud)
但当实际调用此函数时,它会呈现黑屏,但不会显示任何错误。你能告诉我为什么吗?
如果您在故事板中创建了 NewViewController,则像这样实例化将不会从那里获取 ui 界面。
您可以尝试在情节提要上为其分配 StoryBoardId 并尝试:
func presentView(fromDate: date) {
let newViewController = self.storyboard.instantiateViewController(withIdentifier: "NewControllerIdentifier")
// your code
self.present(vc, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
如果控制器与呈现控制器位于同一故事板中。或者您可以为其创建一个 segue,调用该 segue 并在“prepareForSegue”中设置新的控制器数据。
| 归档时间: |
|
| 查看次数: |
11191 次 |
| 最近记录: |