在倒带时自动重新加载TableViewController

时间:2015-08-07 04:57:26

标签: swift uitableview ios8 realm

我正在开发一个应用程序,它从tableViewController开始,它加载并显示存储在Realm数据库中的数据。我有它所以我可以在一个单独的场景中在我的Realm数据库中创建一个新条目,并且保存按钮展开会回到初始tableView。

我当前有它所以tableViewController将在下拉(something I Learned here, second answer down)时重新加载tableView但是如果tableView在展开时自动重新加载它自己会更好,显示我的数据库中的所有数据,包括我的新条目。有人可以指导我一个教程,教我如何做到这一点。

其他信息:我的应用程序嵌入在导航控制器中。保存按钮位于底部工具栏。

3 个答案:

答案 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()
    }
}