AppDelegate Swift 中的 reloadData

Posted

技术标签:

【中文标题】AppDelegate Swift 中的 reloadData【英文标题】:reloadData in AppDelegate Swift 【发布时间】:2015-06-26 17:02:22 【问题描述】:

我的 AppDelegate 中有一个类似于 DidReceiveRemoteNotification 的函数,并且在收到消息后将消息附加到数组中,然后尝试重新加载 tableview。

我的应用只包含一个 Viewcontroller 和一个 AppDelegate。

我的代码如下所示:

    var myCustomViewController: ViewController = ViewController(nibName: nil, bundle: nil)

    println("******didReceiveMessage*****")
    myCustomViewController.messages.append(message.data.message as! String)
    println(myCustomViewController.messages)
    myCustomViewController.MessageTableView.reloadData()

每当我尝试调用重新加载函数时,我的应用程序都会崩溃。有没有办法从我的 appDelegate 函数重新加载我的 tableView?

【问题讨论】:

崩溃消息说什么? 致命错误:在展开可选值时意外发现 nil myCustomViewController.MessageTableView.reloadData() 检查 .MessageTableView 是否不为零 是的,它显然是零。但它不应该是? 【参考方案1】:

您的视图尚未加载,因此表格视图尚不存在,因此为 nil。

不清楚您是否使用了正确的视图控制器,因为您正在创建一个新视图控制器。要么在其上调用view 以创建视图(和子视图),要么更改对真实现有视图控制器的引用。

您很可能应该访问应用程序委托window 的根视图控制器。

【讨论】:

以上是关于AppDelegate Swift 中的 reloadData的主要内容,如果未能解决你的问题,请参考以下文章

AppDelegate Swift 中的 reloadData

AppDelegate 中的 Swift UITabbar 阴影

类 AppDelegate: UIResponder, UIApplicationDelegate SWIFT 中的 SIGABIRT 错误

如何在 Swift 中的 AppDelegate 中抓取 Viewcontroller

Swift开发教程--如何在别的类中调用AppDelegate中的方法

如何使用swift获取appdelegate中的当前位置