swift 中的刷新控件出错
Error while refresh control in swift
我正在尝试使用 UIRefreshControl
在 tableview 中实现刷新控制。
但是在应用程序中拉取刷新时,它只是给我一个错误:
"Thread 1 : Signal SIGABRT" in the app delegate file.
不知道怎么解决。我需要帮助。谁能告诉我如何解决这个问题。
下面是我实现的代码:
class FeedTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate, NSXMLParserDelegate {
var myFeed : NSArray = []
var url: NSURL = NSURL()
var tableViewCtrl = UITableViewController()
var refreshCtrl:UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.rowHeight = 100
self.tableView.dataSource = self
self.tableView.delegate = self
// value of the url comes from view controller swift file
loadNews(url);
self.refreshCtrl = UIRefreshControl()
self.refreshCtrl!.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshCtrl!.addTarget(self, action: "ref", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshCtrl!)
}
func ref(sender:AnyObject)
{
loadNews(url)
self.refreshCtrl.endRefreshing()
}
func loadNews(data: NSURL) {
var myParser : XmlParserManager = XmlParserManager.alloc().initWithURL(data) as! XmlParserManager
myFeed = myParser.feeds
tableView.reloadData()
}
}
由于你的func ref
有一个参数,你在添加目标到刷新控件时需要添加:
如下:
self.refreshCtrl!.addTarget(self, action: "ref:", forControlEvents: UIControlEvents.ValueChanged)
我正在尝试使用 UIRefreshControl
在 tableview 中实现刷新控制。
但是在应用程序中拉取刷新时,它只是给我一个错误:
"Thread 1 : Signal SIGABRT" in the app delegate file.
不知道怎么解决。我需要帮助。谁能告诉我如何解决这个问题。
下面是我实现的代码:
class FeedTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate, NSXMLParserDelegate {
var myFeed : NSArray = []
var url: NSURL = NSURL()
var tableViewCtrl = UITableViewController()
var refreshCtrl:UIRefreshControl!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.rowHeight = 100
self.tableView.dataSource = self
self.tableView.delegate = self
// value of the url comes from view controller swift file
loadNews(url);
self.refreshCtrl = UIRefreshControl()
self.refreshCtrl!.attributedTitle = NSAttributedString(string: "Pull to refresh")
self.refreshCtrl!.addTarget(self, action: "ref", forControlEvents: UIControlEvents.ValueChanged)
self.tableView.addSubview(refreshCtrl!)
}
func ref(sender:AnyObject)
{
loadNews(url)
self.refreshCtrl.endRefreshing()
}
func loadNews(data: NSURL) {
var myParser : XmlParserManager = XmlParserManager.alloc().initWithURL(data) as! XmlParserManager
myFeed = myParser.feeds
tableView.reloadData()
}
}
由于你的func ref
有一个参数,你在添加目标到刷新控件时需要添加:
如下:
self.refreshCtrl!.addTarget(self, action: "ref:", forControlEvents: UIControlEvents.ValueChanged)