user5513630 user5513630 - 7 months ago 59
Swift Question

Show no data in table view - when no data return from api

I have some 15 collection view cell.when user click each cell, that respective cell data will display in next screen table view.But , some cell are don't have any data.In that case i need to shoe in table view that "No Data".How to show that??

here is my code:

These are the delegate method in my table view :

// array to store the value from json
var arrDict = [Businessdata]()



func numberOfSectionsInTableView(tableView: UITableView) -> Int
{
return 1
}

// number of rows
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return self.arrDict.count

}


// calling each cell based on tap and users ( premium / non premium )
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{


//let cell:customCell = self.TableViewList.dequeueReusableCellWithIdentifier("cell") as! customCell
let cell:customCell = tableView.dequeueReusableCellWithIdentifier("cell") as! customCell

cell.vendorName.text = arrDict[indexPath.row].BusinessName
cell.vendorAddress.text = arrDict[indexPath.row].Address
cell.VendorRating.rating = arrDict[indexPath.row].Rating!

return cell
}


Please help me out, where i have to declare that .I am new to ios development.Thanks !

Answer

Try this:

func numberOfSectionsInTableView(tableView: UITableView) -> Int 
{

        var numOfSection: NSInteger = 0

        if YourArraydata.count > 0 
         {

            self.tableView.backgroundView = nil
            numOfSection = 1


         } 
         else
         {

            var noDataLabel: UILabel = UILabel(frame: CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height))
            noDataLabel.text = "No Data Available"
            noDataLabel.textColor = UIColor(red: 22.0/255.0, green: 106.0/255.0, blue: 176.0/255.0, alpha: 1.0)
            noDataLabel.textAlignment = NSTextAlignment.Center
            self.tableView.backgroundView = noDataLabel

          }

        return numOfSection
  }

enter image description here

Comments