Mam tableview, gdzie czasami może nie być żadnych wyników do wyświetlenia, więc chciałbym umieścić coś, co mówi „brak wyników”, jeśli nie ma żadnych wyników (etykieta lub jedna komórka widoku tabeli?).
Czy jest na to najłatwiejszy sposób?
Spróbowałbym z labeltyłu, a tableviewnastępnie ukrył jeden z dwóch w oparciu o wyniki, ale ponieważ pracuję z TableViewControllera nie normalnym, ViewControllernie jestem pewien, jak to jest inteligentne lub wykonalne.
Używam również Parsei podklasy jako PFQueryTableViewController:
@interface TableViewController : PFQueryTableViewController
Mogę podać dodatkowe informacje, po prostu daj mi znać!
TableViewController Scena w Storyboard:

EDYCJA: Per Midhun MP, oto kod, którego używam
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSInteger numOfSections = 0;
if ([self.stringArray count] > 0)
{
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
numOfSections = 1;
//yourTableView.backgroundView = nil;
self.tableView.backgroundView = nil;
}
else
{
UILabel *noDataLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height)];
noDataLabel.text = @"No data available";
noDataLabel.textColor = [UIColor blackColor];
noDataLabel.textAlignment = NSTextAlignmentCenter;
//yourTableView.backgroundView = noDataLabel;
//yourTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.backgroundView = noDataLabel;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
return numOfSections;
}
A oto widok, który otrzymuję, wciąż ma linie separatora. Mam wrażenie, że to mała zmiana, ale nie jestem pewien, dlaczego pojawiają się linie separatora?

numberOfSectionspowinien zwrócić liczbę i to wszystko. To samo dotyczy numberOfRowsInSection. Można je wywoływać wielokrotnie w dowolnym momencie. Nigdy nie aktualizuj widoków, nie aktualizuj danych ani nie rób niczego poza zwracaniem liczby. Logika aktualizowania widoków nigdy nie może znajdować się w tych metodach.





