我正在开发一个应用程序,它从tableViewController开始,它加载并显示存储在Realm数据库中的数据。我有它所以我可以在一个单独的场景中在我的Realm数据库中创建一个新条目,并且保存按钮展开会回到初始tableView。
我当前有它所以tableViewController将在下拉(something I Learned here, second answer down)时重新加载tableView但是如果tableView在展开时自动重新加载它自己会更好,显示我的数据库中的所有数据,包括我的新条目。有人可以指导我一个教程,教我如何做到这一点。
其他信息:我的应用程序嵌入在导航控制器中。保存按钮位于底部工具栏。
答案 0 :(得分:2)
您可以使用NSNotification
。
首先在tableViewController
viewDidLoad
方法中添加此内容:
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "refreshTable:", name: "refresh", object: nil)
}
这会调用你班上的一个方法:
func refreshTable(notification: NSNotification) {
println("Received Notification")
tableView.reloadData() //reload your tableview here
}
所以也要添加这个方法。
现在,在您的下一个视图控制器中,您将新数据添加到数据库中,将其添加到unWindSegue
函数中:
NSNotificationCenter.defaultCenter().postNotificationName("refresh", object: nil, userInfo: nil)
希望它会有所帮助
答案 1 :(得分:1)
尝试在初始(tableview)控制器的viewWillAppear
中重新加载tabledata。
override func viewWillAppear(animated: Bool) {
self.tableView.reloadData()
}
或者再次调用您从Realm加载数据的功能,如
override func viewWillAppear(animated: Bool) {
getMyData() //or whatever your function name is
}
答案 2 :(得分:1)
如果您使用的是storyboard unwind segue,请尝试使用
func unwindSegue(segue:UIStoryboardSegue) {
if segue.identifier == "identifier" {
getData()
self.tableView.reloaddata()
}
}