2015-05-21 11 views
8

Sto solo cercando di aggiungere celle personalizzate a una tabellaView in Swift. Ho guardato un sacco di tutorial e tutti dicono ad un certo punto di usare qualcosa come tableView.registerNib che non funziona per me!Swift - Impossibile utilizzare "registerNib" sulla mia tabellaView per aggiungere una cella personalizzata

Questo è il codice che sto usando nella mia classe tableViewController:

var nib = UINib(nibName: "ViewExerciceCell", bundle: nil) 
tableView.registerNib(nib, forCellReuseIdentifier: "ExerciceCell") 

Quando provo a costruire, ho un errore sulla seconda riga che dice:

Cannot invoke 'registerNib' with an argument list of type '(UINib, forCellReuseIdentifier: String)'.

Cosa può fare Lo voglio ? Tutti i tutorial e le altre risposte sulle celle personalizzate utilizzano questo codice.

Grazie in anticipo

+0

Come si 'tableView' dichiarato? Si noti che se 'tableView' è opzionale, non è possibile chiamare direttamente un metodo, è necessario utilizzare la notazione' tableView? .registerNib'. – Sulthan

+0

Il mio TableView è dichiarato come un punto vendita: '@IBOutlet var var tableView: UITableView!' –

+0

Non c'è niente di sbagliato nel tuo codice. L'unico problema che posso immaginare è che hai un errore di battitura lì e non hai copiato correttamente l'errore di battitura qui. – Sulthan

risposta

6

sto usando seguente codice all'interno tableView:cellForRowAtIndexPath funzione:

var cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as UITableViewCell 
if cell == nil { 
    tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: "CustomCell") 
    cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as UITableViewCell! 
} 

return cell 

Se avete il vostro cellulare personalizzato in storyboard o un file .xib, non dimenticate di impostare Identifier (in questo caso CustomCell) in Attributes inspector

2

Ok ... Non so quale sia stato il problema, ma rimuovendo il riferimento al file del mio cell.xib nel mio progetto e aggiungendolo di nuovo ho risolto il problema. Ho già avuto alcuni problemi risolti in passato.

Grazie a tutti per le vostre risposte rapide!

1

Dopo un po 'battere la testa ho realizzato il mio errore:

Invece di "forCellReuseIdentifier" Avrei dovuto usare forCellWithReuseIdentifier. Con così tante cose che cambiano con Swift in modo così rapido, è difficile stare al passo con tutti i cambiamenti. Spero che questo ti aiuti.

soluzione che ha funzionato per me:

self.collectionView!.register(UINib(nibName: "CategoryCVCell", bundle: nil), forCellWithReuseIdentifier: "CategoryCVCell") 
+0

LOL stesso sentire quasi 2 ore e senza fortuna lol –

Problemi correlati