2015-07-19 4 views
2

Как скрыть UITableview, когда закладка еще не была выполнена, но вместо этого «показать» ярлык с сообщением «у вас еще нет закладки ничего». Я попытался проверить данные в основных данных, является ли он пустым или нет, но, к сожалению, он не работает.Как скрыть UITableView, когда нет данных из основных данных, чтобы извлечь [Swift]

ответ

0

Чтобы проверить, нет ли базовой базы данных, вы должны сделать NSFetchRequest на сущности, которую хотите проверить, и проверить, пусты ли результаты запроса.

Вы можете проверить его с помощью этой функции:

func entityIsEmpty(entity: String) -> Bool 
{ 

    var appDel:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    var context = NSManagedObjectContext() 

    var request = NSFetchRequest(entityName: entity) 
    var error = NSErrorPointer() 

    var results:NSArray? = self.context.executeFetchRequest(request, error: error) 

    if let res = results 
    { 
     if res.count == 0 
     { 
      return true 
     } 
     else 
     { 
      return false 
     } 
    } 
    else 
    { 
     println("Error: \(error.debugDescription)") 
     return true 
    } 

} 

Надеется, что это поможет.

0

Самый простой способ - обработать это в источнике данных таблицы. Покажите другую ячейку с информацией, которую вы хотите, если есть 0 записей. Вы также можете скрыть представление таблицы и показать ярлык, если хотите.

В numberOfRowsInSection, отметьте 0 и верните 1 в любом случае. (Предполагается, что у вас нет разделов.)

let count = fetchedResultsController.fetchedObjects.count 
return count > 0 ?? count : 1 

Затем, в cellForRowAtIndexPath убедитесь, что вы правильно отобразить информацию.

if fetchedResultsController.fetchedObjects.count == 0 { 
    // initialize a different cell 
    return cell 
} 
// configure and return usual cell 
1
override func viewWillAppear(_ animated: Bool) { 
      super.viewWillAppear(animated) 
      if fetchedResultsController.fetchedObjects.count == 0 { 
      self.tableView.isHidden = true 
    } 
} 
Смежные вопросы