我的应用程序委托(delegate)中有一个函数,它将一个项目附加到名为 ViewController.swift 的文件中的数组中,然后我想在同一文件中重新加载表格 View 。我尝试这样做:
let vc = ViewController()
let navigationController = UINavigationController(rootViewController: vc)
window!.rootViewController = navigationController
println(vc.messages)
//1 vc.messages.append(message.data.message as! String)
//2 vc.MessageTableView?.reloadData()
编号 1,2 的行是我设置断点的地方。它似乎在第 2 行之后中断。
我得到的确切错误是
fatal error: unexpectedly found nil while unwrapping an Optional value
我相信我的问题是我错误地设置了 Root View Controller 。
编辑#1
窗口声明在顶部。
如果我像这样运行我的代码:
let vc = ViewController()
messages.append(message.data.message as! String)
vc.MessageTableView?.reloadData()
println(messages)
然后我可以看到正确的数据被放入数组中(我在这个场景中将其设置为全局数组),但表不会在 View Controller 中更新。
最佳答案
您必须在 ViewController
中重新加载数据
将重新加载放入 viewDidAppear()
或类似的东西
这是一个错误,因为您刚刚init
一个 Controller ,但您的views
尚未准备好,它们正在初始化。
在 viewDidLoad
之后,您可以调用您的 views
,但之前不能。
这就是为什么你的table
是nil
除此之外,为什么即使您看不到它,也需要重新加载表
,对吧?
关于ios - Root View Controller Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31062108/