voglio usare la mia classe UITableViewCell, così nel corrispondente UITableViewController scrivoSwift - Utilizzare init-metodo diverso per dequeueReusableCellWithIdentifier
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentitfier, forIndexPath: indexPath) as MyTableViewCell //cellIdentifier is initialized
return cell
}
che voglio, però, inizializzare il mio cellulare, come devo passare gli argomenti quando è stato creato I documenti Apple dicono che le chiamate dequeueReusableCellWithIdentifier (se una cella deve essere inizializzata) initWithStyle:reuseIdentifier
.
Se c'è una cella da riutilizzare, il metodo chiama prepareForReuse
.
In entrambi i casi, voglio passare argomenti alla mia cella prima di altri metodi vengono eseguiti (ad esempio, in fase di inizializzazione e in preparazioneForReuse, rispettivamente).
Qual è il modo appropriato per farlo ed esiste un modo per utilizzare altri inizializzatori come definito nella classe che deriva da UITableViewCell (MyTableViewCell)?
Sarebbe utile sapere che tipo di cose è necessario passare al tuo cellulare. Puoi creare il tuo metodo init, ma non conosco un modo per intercettare prepareForReuse (in un modo che ti permetta di passare qualcosa ad esso). Se è necessario personalizzare le celle per il riutilizzo, è consigliabile eseguirlo nel controller della vista tabella utilizzando tableViewWillDisplayCell: forRowAtIndexPath :. – rdelmar
In realtà abbastanza semplice: sto creando TableViews nelle celle, quindi ho bisogno di fornire il numero di sezione in quanto queste informazioni vengono perse. Ho solo pensato che sarebbe una buona pratica fornire le informazioni rilevanti al momento dell'inizializzazione. – Cordt