如何在另一个快速课程中结束刷新?
Posted
技术标签:
【中文标题】如何在另一个快速课程中结束刷新?【英文标题】:How can I end refreshing in another swift class? 【发布时间】:2016-10-13 23:21:54 【问题描述】:您好,我有这个疑问,我可以在另一个类中结束刷新控制吗? 在我的 tableviewcontroller 我有这个:
func setRefreshGesture()
let refreshGesture = UIRefreshControl()
refreshGesture.backgroundColor = UIColor.clearColor()
refreshGesture.tintColor = UIColor.whiteColor()
refreshGesture.addTarget(WorkUpdater.sharedInstance,action:#selector(WorkUpdater.attemptUpdateControl),forControlEvents:.ValueChanged)
self.refreshControl = refreshGesture
self.refreshControl?.layer.zPosition = self.tableView.backgroundView!.layer.zPosition + 1
在我的其他班级.. 有这个:
func attemptUpdateControl()
if !isUpdating && canPerformUpdate()
isUpdating = true
performUpdateControl()
else
print("ERROR: - Update in progress")
func performUpdateControl()
let reach = Reachability.reachabilityForInternetConnection()!
if reach.isReachable()
work.getData()
else
UIAlertView(title: "Device without connection", message: "You must have an internet connection to use this feature", delegate: nil, cancelButtonTitle: "OK").show()
//这里我想结束我对tableviewcontroller的刷新
【问题讨论】:
【参考方案1】:您可以设置自定义Delegate
或使用NSNotifcationCenter
。我不确定您的TableViewController
与WorkUpdater
是什么关系。
所以我向您展示了一种使用NSNotifactionCenter
的可能方法。在你的TableViewController
中,在viewDidLoad
中有这个
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.refreshCompleted), name:"refreshCompleted", object: nil)
然后有一个refreshCompleted
func:
func refreshCompleted()
refreshGesture.endRefreshing() //you have to set it as a class var
同时更新WorkUpdater
:
func performUpdateControl()
let reach = Reachability.reachabilityForInternetConnection()!
if reach.isReachable()
work.getData()
else
UIAlertView(title: "Device without connection", message: "You must have an internet connection to use this feature", delegate: nil, cancelButtonTitle: "OK").show()
//add this
NSNotificationCenter.defaultCenter().postNotificationName("refreshCompleted", object: nil)
【讨论】:
以上是关于如何在另一个快速课程中结束刷新?的主要内容,如果未能解决你的问题,请参考以下文章