2012-04-12 17 views
13

utilizzando un prototipo di cella personalizzato dinamica che disegno, per esempio, UITableViewController Un (in Interface Builder/Storyboard), funziona molto bene con l'accodamento della cellula (attraverso il suo identificatore, Cella) e tale in cellForRow ... io uso una classe personalizzata (UITableViewCell sottoclasse, diamo il nome MyCustomCell) per collegare le etichette e il pollice e funziona tutto abbastanza bene e dritto in avanti nella mia UITableViewController a .iOS5 Storyboard: Riutilizzo personalizzato UITableViewCell in più UITableViewControllers

Ora creo un UITableViewController B (in Storyboard), che ha lo stesso identico design/funzionalità per le sue celle personalizzate (celle dinamiche). Quindi cambio la classe di queste celle al numero MyCustomCell e gli diamo un nuovo identificatore, cellB.

In UITableViewController B, ho dequeue la cella in cellForRow ... e utilizzare il nuovo identificatore cellB. Nota: l'utilizzo di cellA porta a un arresto anomalo, più o meno evidente.

Ma quando la vista tavola presenta, mentre esegue l'applicazione, il UITableViewController A funziona bene, e la quasi identico UITableViewController B non funziona (celle vuote).

In Storyboard, sembra una sorta di fuori un po ', perché la cella personalizzato è progettabile all'interno del UITableViewController Un ma in UITableViewController B, è solo un semplice, cellula normale. Nonostante la classe associata a MyCustomCell.

Come evitare di copiare le celle & incollandole all'altro controller (e quindi spostarsi avanti e indietro tra le copie quando si effettuano modifiche al disegno) - e piuttosto semplicemente riutilizzarlo correttamente?

+1

Una bella domanda, esattamente quello che mi stavo chiedendo. E se aggiungo una nuova sottoclasse di UITableViewCell, l'opzione per creare un XIB non è disponibile. – theLastNightTrain

+1

Penso che questo sia risposto abbastanza bene in http://stackoverflow.com/questions/9245969/in-a-storyboard-how-to-make-a-custom-cell-for-use-with-multiple-controllers – wolak

risposta

2

Quello che stai facendo è corretto. Non so perché non funzioni, potrebbe essere un problema ricaricare la tableview; verificare con l'origine dati e il metodo dell'origine dati.

- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger) section 

piuttosto ciò che si può fare è: trascinare un

viewController

quindi trascinare una Tableview

e rendilo dinamico e fai ciò che hai fatto prima; ha funzionato bene per me quando l'ho fatto io stesso.

1

Dire che la cella proviene da una classe personalizzata non significa che sia "progettata" allo stesso modo. Quello che davvero cerchi di ottenere qui (e quello che sto cercando) è un re della cella "Contenuta", ma questo è possibile solo con ContainerViewController in iOS 6, penso.L'altra opzione è usare un XIB per quella cella - che dovrebbe funzionare altrettanto bene, ma poi si perdono i benefici di avere una panoramica nello Storyboard.

0

Avevo un problema simile, avevo creato una cella personalizzata con un uitextfield al suo interno. Sta funzionando bene nella prima tableview ma non nel secondo. Ho capito che il delegato del campo di testo non era connesso alla cella personalizzata. Ho collegato i due nello storyboard effettuando una connessione dai delegati al campo di testo.

Problemi correlati