Mi sembra che tu abbia risposto alla tua stessa domanda: non puoi. Poiché la cella non ha un indexPath quando viene eseguito viewDidLoad. E infatti, non ne ha neanche uno più tardi, perché la stessa cella potrebbe essere riutilizzata per essere a un altro indice entro un decimo di secondo, se si usa il dequeue delle celle (bella parola!), Che si dovrebbe.
MODIFICA: Ok, penso di vedere quello che vuoi: stai salvando il tuo IndexPath da qualche parte quando passi la cella al TableView. Nota: se non lo fai, non c'è modo di sapere in quale indexPath viene inserita una determinata cella, almeno non se stai facendo le cose come dovresti.
Quindi, ciò che puoi fare è semplicemente creare tutte le celle nel tuo metodo viewDidLoad, memorizzarle in un array, e poi, quando la tabella le chiede, passarle semplicemente da quella matrice.
Si noti che questo non è un buon modo per popolare una vista tabella, perché impedisce il riutilizzo delle celle. Un modo migliore sarebbe quello di salvare il contenuto delle celle (plain UIViews) nella matrice e aggiungerli come figli alla visualizzazione del contenuto della cella prima di restituire la cella. Ciò consentirebbe il riutilizzo delle celle, che è fondamentale per le buone prestazioni. Se non hai più celle di quelle che si adattano allo schermo, non devi preoccuparti di riutilizzarle comunque.
Perché avete bisogno l'indexPath nel metodo viewDidLoad? –
perché ho bisogno di saltare a una specifica posizione della cella sul mio tavolo, che non so in quale posizione sarà. –
Sono confuso.In che modo le sezioni e le righe contano per uno specifico elemento di dati in una tabella non lineare? Se non è lineare, come viene visualizzata una tabella lineare? – Giao