2015-05-29 128 views
2

我想通過使用UIRefreshControl來實現tableview中的刷新控制。在swift中刷新控制時出錯

但同時在應用牽引着刷新,它只是給我一個錯誤:

"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() 
} 
} 
+1

改變這條線self.refreshCtrl!.addTarget(self,action:「ref:」,forControlEvents:UIControlEvents.ValueChanged) –

+0

哦。地獄!!!順便說一句.....感謝anish Parajuli –

+0

解決了嗎? –

回答

0

正如你func ref有一個參數,你需要添加:當您添加的目標如下刷新控制:

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