2015-07-21 14 views
6

L'errore completo è: La presa playerView dal TableViewController a AVPlayerView non è valida. Gli outlet non possono essere collegati a contenuti ripetuti.Swift - Le uscite non possono essere collegate al contenuto ricorrente

Le risposte simili come this one non hanno funzionato (supponendo che le sto provando correttamente, sono molto nuovo per iOS).

Tutto ciò che voglio è una vista all'interno di TableViewCell.

Ho provato a trascinare una vista in Storyboard sul contentView (e sulla cella) del TableViewCell, assegnandole una classe di AVPlayerView: UIView (e una sottoclasse di tableViewCell: AVPlayerView: UITableViewCell), quindi ctrl + trascinamento da tale visualizza nello storyboard nel mio TableViewController. Quindi non si compila. Davvero confuso, grazie per l'aiuto.

+0

creare una cella personalizzata e aggiungere l'IBOutlet ad esso –

risposta

20

La visualizzazione tabella può contenere contenuto statico o dinamico.

Se si desidera che la vista tabella abbia sempre lo stesso contenuto, impostarla su statico (nel generatore di interfacce), quindi è possibile collegare le uscite in questo modo, nello UIViewController.

Se si desidera che le celle della vista tabella cambino dinamicamente, non è possibile farlo in questo modo. Perché potresti ripetere le celle e la presa sarebbe ambigua. Devi creare una sottoclasse UITableViewCell per le tue celle e creare lì i punti vendita.

Per chiarire: in modalità tabella dinamica, è necessario CTRL + trascinare la presa nella sottoclasse UITableViewCell, non il controller di visualizzazione.

+0

Hey Tiago, grazie per la risposta. Non sono del tutto sicuro che lo stia facendo bene, ma ho creato una classe AVPlayerTableViewCell: UITableViewCell, quindi assegnata la cella nello storyboard a questa classe. Sono anche riuscito a creare questo outlet @IBOutlet weak var playerView: UIView! all'interno di AVPlayerTableViewCell. Ora la mia domanda è: come faccio a impostare proprietà come layer sul playerView dal TableViewController? - – natecraft1

+2

Ci scusiamo per aver impiegato così tanto tempo! È corretto. Ora sul controller, si utilizza tableViewCellForRowAtIndexPath per creare e configurare le celle. Lì puoi accedere al giocatore come cell.playerView –

Problemi correlati