Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Table View not returning data

I'm a student iOS dev, and I'm trying to control a tableview in a collection view cell that is returning 3 (or more) tableviews so I can have multiple tableviews. I believe I implemented everything right but no data is returned to the individual tableviews I have set the reuseidentifiers in the prototype cells in the tableview, and also the delegate and datasource are set to the VC.

var tableView1: UITableView?
var tableview2: UITableView?


    // MARK: - Table view data source

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    if tableView == tableView1 {

        return 2;

    } else if tableView == tableview2 {

        return 3
    }
    return 0;

}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    if tableView == tableView1 {
        return 2;

    } else if tableView == tableview2 {

        return 1;
    }
    return 0;

}



func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
    if tableView == tableView1 {
        cell = tableView.dequeueReusableCellWithIdentifier("testcell1", forIndexPath: indexPath) as! UITableViewCell

    } else if tableView == tableview2 {

        cell = tableView.dequeueReusableCellWithIdentifier("testcell2", forIndexPath: indexPath) as! UITableViewCell
    }

    // Configure the cell...
    if tableView == tableView1 {

    cell.textLabel?.text = "Homeroom"
    cell.detailTextLabel?.text = "8:15 AM - 9:00 AM"
    cell.selectionStyle = .None

    } else if tableView == tableview2 {
        cell.textLabel?.text = "Test Table 2 "
        cell.detailTextLabel?.text = "1:30 PM - 2:30 PM"
        cell.selectionStyle = .None

    }

    return cell

}


//**Center collection cells in the middle**

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {
    let sideInset = (collectionView.frame.size.width - 650) / 2
    return UIEdgeInsets(top: 0, left: sideInset, bottom: 0, right: sideInset)
}

}

//Card Scrolling datasource 

extension SAHomeViewController: UICollectionViewDataSource {

func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
    return 1
}

    //Number of cards on home screen
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 2
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cardcell", forIndexPath: indexPath)

    // Configure collection view cell

    return cell
}

Here is my project editor to be clearer.

enter image description here

like image 397
Hightower98 Avatar asked Mar 07 '26 02:03

Hightower98


1 Answers

You need to provide default return value in both the functions. Because compiler checking that the functions required Int value should be returned and in these functions if any condition doesn't matched it will not return anything.

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    if tableView == tableView1 {            
        return 2;            
    }
    else if tableView == tableview2
    {            
        return 3;
    }
    return 0; // here
}  

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete implementation, return the number of rows
    if tableView == tableView1 {
        return 2;            
    } else if tableView == tableview2 {            
        return 1;
    }
    return 0; // here
} 
like image 192
Yogesh Suthar Avatar answered Mar 09 '26 23:03

Yogesh Suthar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!