2017-03-01 1 views
1

J'essaie de créer un UITableView en tant que sous-vue personnalisée de mon UIViewController, mais les données n'apparaissent pas dans la table. Je soupçonne que le problème est mon delegate et datasource pour la table ne sont pas définis. Comment puis-je les lier? Le UITableViewDataSource ne semble pas fonctionner dans une classe UITableView?Définition de délégué et de source de données dans UITableView personnalisé

UIViewController

let projectDeck = ProjectDeck() 
    projectDeck.frame = CGRect(x: 0, y: statusBarHeight + 132, width: screenWidth, height: screenHeight - 132) 
    self.view.addSubview(projectDeck) 

UITableView

class ProjectDeck: UITableView { 

    var items = ["Test", "TestTest", "TestBestWestVest"] 

    override func numberOfRows(inSection section: Int) -> Int { 
     return items.count 
    } 

    override func cellForRow(at indexPath: IndexPath) -> UITableViewCell? { 
     let cell = UITableViewCell() 
     cell.textLabel?.text = items[indexPath.row] 
     return cell 
    } 

} 
+0

projectDeck.delegate = self, même avec datasource (si votre UIViewController est le délégué ou la source de données), ** N'oubliez pas ** que vous devez fournir une hauteur correcte pour vos cellules tableView. https://developer.apple.com/reference/uikit/uitableviewdelegate/1614998-tableview –

+0

Copie possible de [set delegate et datasource de uitableview par programme dans Swift] (http://stackoverflow.com/questions/27022136/set-delegate -and-datasource-of-uitableview-programatically-in-swift) –

+0

Comment dé-mettre en file les cellules: http://stackoverflow.com/questions/24471954/how-to-use-dequeuereusablecellwithidentifier-in-swift –

Répondre

0

délégué ensemble et dans votre source de données viewcontrloller

dire dans viewcontroller

projectdesc.tableview.datasource = self 
projectdesc.tableview.delegate = self 

et met en œuvre des méthodes de tableview comme cellforRow dans viewccontroller

et assurez-vous que vous ajoutez tableview comme dans viewcontroller correctement sous-vue

0

Vous devez ajouter et source de données de référence déléguer.

Vous pouvez le faire en prenant sortie ou du storyboard.

Utilisation Outlets:

yourTableView.datasource = self 
yourTableView. delegate = self 

Utilisation StoryBoard

vue de table ctrl-glisser pour viewController à côté de premier intervenant et cliquez sur et délégué datasource.