2015-11-04 126 views
0

我有一个tableview来显示产品,并添加一个新产品的视图。swift - coredata刷新tableview

在AddProductViewController中,将产品数据添加到coredata后,我关闭控制器并返回到我的ProductTableView。

navigationController!.popViewControllerAnimated(true) 

在ProductTableView我加refreshcontroller

override func viewDidLoad() { 
      super.viewDidLoad() 
      product = fetchProducts() 
      refreshControl = UIRefreshControl() 
      refreshControl?.addTarget(self, action: "refreshProducts", forControlEvents: UIControlEvents.ValueChanged) 
      refreshControl?.beginRefreshing() 
    } 

    func refreshProducts(){ 
      product = fetchProducts() 
    } 

    func fetchProducts() -> [Product] { 
      let request = NSFetchRequest(entityName: "Product") 

      let sortDescriptor = NSSortDescriptor(key: "productName", ascending: true) 
      request.sortDescriptors = [sortDescriptor] 

      let product = (try! context!.executeFetchRequest(request)) as! [Product] 

      self.view.hideLoading() 
      self.refreshControl?.endRefreshing() 

      return product 
    } 

    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     self.refreshControl?.beginRefreshing() 
     self.tableView.reloadData() 
    } 

我拥有的是:
1.泰伯维驳回第二视图 - 控制
2.有冰冻刷新图标后不会刷新。
3.当我启动我的应用程序时,我有一个刷新轮旋转并没有消失。

回答

1
override func viewDidLoad() { 
     super.viewDidLoad() 
     refreshControl = UIRefreshControl() 
     refreshControl?.addTarget(self, action: "refreshProducts", forControlEvents: UIControlEvents.ValueChanged) 
} 

func refreshProducts(){ 
     product = fetchProducts() 
     self.tableView.reloadData() 
} 

func fetchProducts() -> [Product] { 
     let request = NSFetchRequest(entityName: "Product") 

     let sortDescriptor = NSSortDescriptor(key: "productName", ascending: true) 
     request.sortDescriptors = [sortDescriptor] 

     let product = (try! context!.executeFetchRequest(request)) as! [Product] 

     self.view.hideLoading() 
     self.refreshControl?.endRefreshing() 

     return product 
} 

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    self.refreshControl?.beginRefreshing() 
    refreshProducts() 
} 
+0

谢谢,现在正在工作...... –