Vista tabella statica all'esterno di UITableViewController


159

Dopo il nuovo aggiornamento di Xcode, la mia app non viene convalidata e mostra questo errore:

le viste di tabelle statiche sono valide solo se incorporate nelle istanze di UITableViewController

Qualche possibilità di risolverlo facilmente?


Dipende dal motivo per cui stai usando una sottoclasse UIViewController invece di UITableViewController.
David Berry,

3
Perché ho bisogno di altri elementi all'interno della vista che non appartengono a UITableViewController
Francesco S

1
Si è verificato lo stesso problema qui. Appena aggiornato (o downgrade, a quanto pare, finora) a Xcode 5.1 e ho lo stesso problema. Ho un sacco di celle statiche in una sottoclasse UITableViewController all'interno del mio UISplitViewController.
Stefan Arambasich,

Ho iniziato a succedere anche per me dopo l'aggiornamento. Ho alcuni controller di visualizzazione costruiti con celle statiche, non è l'ideale ma prima funzionava bene.
jdmunro,

Non è necessario utilizzare UITableViewController. Questo errore viene visualizzato se si hanno celle di visualizzazione di tabelle statiche in UiTableView, quindi penso che una soluzione semplice sia se hai bisogno delle celle, non lasciarle statiche. Basta aggiungere il delegato viewview e l'origine dati e i metodi fittizi UITableViewDelegate
EarlySun

Risposte:


341

L'unico modo per ottenere un UITableView statico insieme ad altri controlli nella stessa schermata è utilizzare una vista contenitore. Segui in questo modo, funziona perfettamente:

  1. Trascina un ViewController sullo storyboard.
  2. Trascina un TableViewController sullo storyboard.
  3. Quindi trascina una vista Contenitore sul ViewController e ridimensionala in base alla dimensione desiderata (più piccola della vista) -> quando trascini la vista contenitore, verrà creata una vista successiva e un'altra. Rimuovi ciò che segue e visualizza.
  4. Quindi, infine, fai clic tenendo premuto il tasto Ctrl nel contenitore e trascina sul nuovo TableViewContoller. Seleziona Incorpora.
  5. Dai uno stile al tuo TableView come vuoi -> includendo celle statiche.

In bocca al lupo.

Questa risposta è già stata trovata e data qui: G.Huebner -> http://web.archive.org/web/20140928102504/http://iphonedevsdk.com/forum/iphone-sdk-development/111800-static-table- view-cellule-only-lavoro-in-a-uitableviewcontroller.html


Dove fare presa o azione? In UIViewControllero dovrei prendere UITableViewController.
Bhavin Ramani,

@Bhavin Ramani: Dal momento che è un UITableViewController nel contenitore, suggerisco di prendere esattamente quella classe / sottoclasse per contenere i tuoi IBOutlet.
LukeSideWalker

2
Immagino che l'intera idea di "celle statiche" sia implementata in un modo che dipende da alcune funzionalità interne di UITableViewController.
Nicolas Miari,

2
Grazie per questo. Posso confermare che funziona in Xcode 8.3.1.
Atharva Vaidya,

Semplicemente fantastico! Stavo cercando questa soluzione da un po 'di tempo.
Jason Foglia,

8

Un UITableView statico deve trovarsi in un UITableViewController. Quindi dovrai posizionare la tabella in UITableViewController e quindi aggiungerla come childView a MainViewController.

Puoi fare riferimento a https://iphoneidoit.blogspot.in/2013/10/static-uitableview-in-uiviewcontroller.html


1
Ci sono stati molti modi per aggirare questo prima, (come conservare la cella), ma ora è un errore a prescindere. Penso che la domanda stia suggerendo se esiste un modo per sopprimere l'errore.
Matthew Knippen,

Sì lo era. Sfortunatamente, ho finito per risolvere il problema usando un tableView non statico
Francesco S

1
Yikes. La quantità di rilavorazione che dovrebbe essere convertita in non statica a causa di tutti IBOutleti messaggi nel file del mio controller di visualizzazione è eccessiva e IMO è inaccettabile per un aggiornamento interromperlo senza alcun avviso o nota nel registro delle modifiche ( ergo suppongo sia ancora perfettamente valido sulla carta avere a UITableViewControllercon celle statiche all'interno di a UISplitViewContoller. Ho contattato il supporto degli sviluppatori di Apple e ho ricevuto solo una risposta genericamente non così utile che mi collega ai forum. Suppongo che proverò lì e vedrò se qualcun altro ha gli stessi problemi dopo l'aggiornamento.
Stefan Arambasich,

4

Penso che ciò che stai facendo sia trascinare prima ViewController sullo storyboard e quindi trascinare tableView su ViewController. In questo modo non è possibile utilizzare le celle della tabella statica. Invece, ciò che dovresti fare è trascinare TableViewController sullo storyboard principale anziché un ViewController e quindi selezionare le celle statiche. In questo modo puoi essere in grado di lavorare su celle statiche e puoi utilizzare qualsiasi elemento su celle statiche.


0

Bene, se stai davvero usando un tableView statico, dovresti considerare di copiare / incollare tutto su ScrollView o StackView.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.