arun_K
arun_K

Reputation: 353

customCell UITextField in UITableViewController not displaying during runtime swift

I am facing a weird problem in my project. My UITextField, UILabel, and UIButton are not appearing during runtime even though all the referencing outlets are mentioned properly

here is my tableview controller code:

class ComposeMessageTableViewController:  UITableViewController, UITableViewDelegate, UITableViewDataSource {


@IBOutlet var composeMessage: UITableView!

let composeCellArray = ["composeMessage"]
override func viewDidLoad() {
    super.viewDidLoad()
    composeMessage.delegate = self
    composeMessage.dataSource = self
    composeMessage.separatorStyle = .None
    composeMessage.backgroundColor = UIColor.whiteColor()

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 0
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // Return the number of rows in the section.
    return composeCellArray.count
}
 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let composeCell = tableView.dequeueReusableCellWithIdentifier(composeCellArray[indexPath.row]) as! ComposeMessageCell
    if(indexPath.row == 0){
 //        composeCell.toLabel.text = composeCellArray[indexPath.row] as String
//        composeCell.recepientTextField?.text = composeCellArray[indexPath.row] as String
    composeCell.toLabel.text = "To"
    composeCell.recepientTextField?.placeholder = "Recepients"
    composeCell.addButton.tag=indexPath.row
    composeCell.addButton.addTarget(self, action: "addMembers:", forControlEvents: UIControlEvents.TouchUpInside)
    }
    // Configure the cell...
    composeCell.backgroundColor = UIColor.clearColor()
    composeCell.selectionStyle = .None

    return composeCell


}
@IBAction func addMembers(sender:UIButton){

}

@IBAction func dismissnav(sender: AnyObject) {
    dismissViewControllerAnimated(true, completion: nil)
}

}

here is tableviewcell code:

class ComposeMessageCell: UITableViewCell {

@IBOutlet var toLabel: UILabel!
@IBOutlet var recepientTextField: UITextField!
@IBOutlet var addButton: UIButton!

override func awakeFromNib() {
    super.awakeFromNib()

    toLabel.font = UIFont(name: "Avenir-Black", size: 16)
    toLabel.textColor = UIColor.blackColor()
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}
}

runtime Image

StoryBoard Image

Please let me know where am i going wrong

Upvotes: 0

Views: 56

Answers (2)

IgorMD
IgorMD

Reputation: 39

As @Prabhu mentioned delegate for method:

 override func numberOfSectionsInTableView(tableView: UITableView) -> Int {

    return 1
}

should always return 1 which is default or other value set by you.

Upvotes: 0

Prabhu.Somasundaram
Prabhu.Somasundaram

Reputation: 1390

Below delegate should return 1

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1
}

Upvotes: 1

Related Questions