倒带时自动重新加载 TableViewController

Posted

技术标签:

【中文标题】倒带时自动重新加载 TableViewController【英文标题】:Automatically Reload TableViewController On Rewind 【发布时间】:2015-08-07 04:57:26 【问题描述】:

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

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

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

【问题讨论】:

感谢您的回复。这三个都运行良好。 你可以接受任何答案.. :) 【参考方案1】:

您可以为此使用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)

希望对你有帮助

【讨论】:

【参考方案2】:

尝试在初始(tableview)控制器中重新加载viewWillAppear 中的表格数据。

override func viewWillAppear(animated: Bool) 
    self.tableView.reloadData() 
 

或者再次调用从 Realm 加载数据的函数,例如

override func viewWillAppear(animated: Bool) 
         getMyData() //or whatever your function name is
 

【讨论】:

【参考方案3】:

如果您正在使用情节提要展开转场,请尝试使用

func unwindSegue(segue:UIStoryboardSegue) 
    if segue.identifier == "identifier" 
        getData()
        self.tableView.reloaddata()
    

【讨论】:

以上是关于倒带时自动重新加载 TableViewController的主要内容,如果未能解决你的问题,请参考以下文章

倒带 std::cout 以回到行首

如何使用 JMeter 倒带和暂停视频流并再次播放

绘制三角形带时,啥控制 OpenGL 的行为?

加快 Meteor.js 中的自动重新加载

logstash 自动重新加载配置

之后的 Tkinter 在时钟倒带中幸存下来