2015-01-16 21 views
8

Mi sono guardato intorno e ci sono molti esempi su come farlo, ma non riesco ancora a ottenerlo.UITableViewCell personalizzato con XIB

Ho una lista in cui sto elencando le voci del diario che voglio mostrare un titolo, la data di creazione e poche altre cose. Voglio usare un XIB per progettare una cella, quindi il progettista UX può modificarlo e pixel spingerlo.

Quindi, questo è come ho configurato il XI ter: enter image description here

Poi ho fatto una classe che punti in questa cella XI ter e ho aggiunto due proprietà ad esso:

@property (atomic, weak) IBOutlet UILabel* titleLabel; 
@property (atomic, weak) IBOutlet UILabel* dateLabel; 

voglio essere in grado di impostare questi quando creo queste celle.

Nella vista che ha il tavolo lista faccio questo: In - (void) viewDidLoad

[self.tableView registerNib:[UINib nibWithNibName:@"DreamListTableViewCell" bundle:nil] forCellReuseIdentifier:@"DreamListCell"]; 

E in - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath faccio questo:

static NSString *MyIdentifier = @"DreamListCell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier forIndexPath:indexPath]; 

il problema è che l'applicazione si blocca se IBOutlets configurazione io nel XI ter cellulare, perché immagino che il proprietario è davvero pari a zero quando viene inizializzato, ma non sono realmente sicuro. Come posso modificare queste due proprietà se non riesco a collegarle nel builder dell'interfaccia? Cosa dovrei fare in modo diverso?

Inoltre, non sto usando gli storyboard. Sto usando questo come guida: Chapter 21. Table Views and Collection Views

Mi scuso per una specie di domanda duplicata, non lo capisco. Halp!

Edit: uscita screenshot: enter image description here

Edit # 2: Se rimuovo connessioni di uscita nel XI ter cellulare vedo questo: enter image description here

+0

Hai associato la classe personalizzata alla cella in IB? È inoltre necessario specificare la classe personalizzata e non "UITableViewCell" nel 'cellForRowAtIndexPath' – sha

+0

I cast" cell "nella classe di celle personalizzata in seguito, ma si blocca prima che il codice venga eseguito. Ho impostato il proprietario del file e la vista root nello xib in modo che punti alla mia classe personalizzata cella :( – SpaceBear

+0

Dove si blocca esattamente e qual è l'eccezione dice? – sha

risposta

6

Non utilizzare proprietario del file per impostare le relazioni a IBOutlets. Cambia la classe della cella e usa quella (potrebbe essere complicato fare le connessioni su alcune versioni di Xcode, ma è fattibile).

Problemi correlati