multi_coder
multi_coder

Reputation: 5

Swift sidebar menu creation

I am trying to follow the guide found here to create a swift sidebar menu: https://www.youtube.com/watch?v=qaLiZgUK2T0 I have reached the following function:

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

    if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel.textColor = UIColor.darkTextColor()

        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)

        cell!.selectedBackgroundView = selectedView

    }

    cell!.textLabel.text = tableData[indexPath.row]

    return cell
} 

I have gotten a "Overriding method with selector 'tableView:cellForRowAtIndexPath..." error; being fairly new to swift i am not sure what to do at this point. Please let me know what to do, if you happen to know of a better guide please let me know.

For anyone who may have this issue in the future here is a complete solution of what worked for me, thanks to zisoft for the help with this:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell:UITableViewCell? = tableView.dequeueReusableCellWithIdentifier("Cell") as? UITableViewCell

    if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel.textColor = UIColor.darkTextColor()

        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)

        cell!.selectedBackgroundView = selectedView

    }

    cell!.textLabel.text = tableData[indexPath.row]

    return cell!
}

Upvotes: 0

Views: 406

Answers (2)

OliverSpa
OliverSpa

Reputation: 1

Were the same mistakes were not removed by these methods and found this:

if cell == nil{
        cell = UITableViewCell(style :UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        // Configure the cell...
        cell!.backgroundColor = UIColor.clearColor()
        cell!.textLabel?.textColor = UIColor.darkGrayColor()            
        let selectedView:UIView = UIView(frame: CGRect (x: 0, y:0, width: cell!.frame.size.width, height: cell!.frame.size.height))
        selectedView.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.3)            
        cell!.selectedBackgroundView = selectedView            
    }        
    cell!.textLabel?.text = tableData[indexPath.row]        
    return cell!
}

Hope this might help.

Upvotes: 0

zisoft
zisoft

Reputation: 23078

The function signature has changed during the evolving of swift. The correct signature now is:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    ...
}

So remove the exclamation marks.

Upvotes: 1

Related Questions