我對開發Swift和iOS相對比較陌生,但並不是新的代碼。我有點討厭表格視圖。刪除列表後,UITableView將不會刷新。 self.tableView.reloadData()不起作用
我已經試過無數次使用self.tableView.reloadData()
但無濟於事。我也試過
async call dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
但是這也不想工作。我會發布功能,以便有人可以啓發我在哪裏搞錯了。我真的很感激幫助。
@IBAction func clearList(sender: AnyObject) {
let alert = UIAlertController(title: "Clear List?",
message: "Are you sure you want to clear the list?",
preferredStyle: .Alert)
let yesClearAction = UIAlertAction(title: "Yes", style: .Default, handler: { (action:UIAlertAction) -> Void in
self.clearListNow("GroceryList")
})
let noClearAction = UIAlertAction(title: "No", style: .Default, handler: { (action:UIAlertAction) -> Void in
//do nothing aka don't clear list
})
alert.addAction(yesClearAction)
alert.addAction(noClearAction)
presentViewController(alert, animated: true, completion: nil)
self.tableView.reloadData()
}
以防萬一有人想看看有什麼clearListNow
呢......
func clearListNow(entity: String) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let fetchRequest = NSFetchRequest(entityName: "GroceryList")
fetchRequest.returnsObjectsAsFaults = false
do
{
let results = try managedContext.executeFetchRequest(fetchRequest)
for managedObject in results
{
let managedObjectData:NSManagedObject = managedObject as! NSManagedObject
managedContext.deleteObject(managedObjectData)
}
} catch let error as NSError {
print("Detele all data in \(entity) error : \(error) \(error.userInfo)")
}
}
我也試圖在clearListNow
功能使用self.tableView.reloadData()
。我試圖在同一時間和兩種情況下單獨陳述陳述,並且兩種情況都沒有奏效。
做你嘗試把你的代碼'dispatch_async內(dispatch_get_main_queue()){...})'塊,以避免異步加載? – iamalizade
你是否已經設置了tableview的委託和數據源?並同時實施?請顯示這個實現。 – Darko