在swift中刷新控件时出错

时间:2015-05-29 12:47:10

标签: ios uitableview swift appdelegate uirefreshcontrol

我正在尝试使用UIRefreshControl在桌面视图中实现刷新控制。

但是在应用程序中进行刷新时,它只是给我一个错误:

  

应用委托文件中的“主题1:信号SIGABRT”。

我不知道如何解决它。我需要帮助。谁能告诉我如何解决这个问题。

以下是我实施的代码:

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

1 个答案:

答案 0 :(得分:0)

由于您的func ref有参数,因此您需要在将目标添加到刷新控件时添加:,如下所示:

self.refreshCtrl!.addTarget(self, action: "ref:", forControlEvents: UIControlEvents.ValueChanged)