使用 UIApplicationDidEnterForeground 更新表视图 swift
update tableview swift with UIApplicationDidEnterForeground
我很难使以下代码正常工作。我想在应用程序唤醒时更新 table 列表。我确认数据已更新,因为当我滚动 table 视图时,它会更新。任何帮助,将不胜感激。我确实在控制台中得到 "attempting reload" 和 "reloading"。
viewdidload() 中的代码:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadList:", name: UIApplicationDidBecomeActiveNotification, object:nil)
函数中的代码:
func reloadList(notification: NSNotification) {
println("attempting reloading")
if (self.tableMain != nil) {
println("reloading")
self.tableMain.reloadData()
}
}
您可以在 viewWillAppear(animated: Bool)
方法中更新您的 table 列表。每次您的视图即将出现在屏幕上时都会调用此方法。
示例代码:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// Do you update here
self.tableView.reloadData()
}
如果你想在你的应用进入前台时更新,你可以这样做:
在您的 viewController 的 viewDdiLoad() 方法中
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadList:", name: "reloadList", object: nil)
在你的 appDelegate 中
func applicationWillEnterForeground(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("reloadList", object: nil)
}
此代码在 objective c 中,您可以更改 swift 的语法。
在您的 viewWillAppear 函数中添加这一行
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadData) name:UIApplicationDidBecomeActiveNotification object:nil];
并且在 viewWillDisappear
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];
我很难使以下代码正常工作。我想在应用程序唤醒时更新 table 列表。我确认数据已更新,因为当我滚动 table 视图时,它会更新。任何帮助,将不胜感激。我确实在控制台中得到 "attempting reload" 和 "reloading"。
viewdidload() 中的代码:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadList:", name: UIApplicationDidBecomeActiveNotification, object:nil)
函数中的代码:
func reloadList(notification: NSNotification) {
println("attempting reloading")
if (self.tableMain != nil) {
println("reloading")
self.tableMain.reloadData()
}
}
您可以在 viewWillAppear(animated: Bool)
方法中更新您的 table 列表。每次您的视图即将出现在屏幕上时都会调用此方法。
示例代码:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
// Do you update here
self.tableView.reloadData()
}
如果你想在你的应用进入前台时更新,你可以这样做:
在您的 viewController 的 viewDdiLoad() 方法中
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadList:", name: "reloadList", object: nil)
在你的 appDelegate 中
func applicationWillEnterForeground(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("reloadList", object: nil)
}
此代码在 objective c 中,您可以更改 swift 的语法。
在您的 viewWillAppear 函数中添加这一行
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadData) name:UIApplicationDidBecomeActiveNotification object:nil];
并且在 viewWillDisappear
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationDidBecomeActiveNotification object:nil];