2013-04-27 12 views
7

So che posso semplicemente eliminare il controller di visualizzazione originale e rilasciare un controller di visualizzazione tabella nella sua posizione all'interno dello Storyboard, ma ciò richiede che io ristabilisca le relazioni tra i controller vista prima e dopo.Converti comodamente un oggetto View Controller in Table View Controller durante la fase di progettazione (Storyboard)

C'è un modo più semplice o più conveniente per convertire il tipo di oggetto al volo durante la fase di progettazione? Questo sembra un compito molto comune (almeno nei miei progetti), e immagino che ci sia un'opzione per questo in Xcode.

risposta

0

In Xcode, apri il pannello "Utilità" (appare da destra), fai clic su "Identity Inspector" e quindi nella regione "Custom Class", seleziona una classe diversa. Nota, tuttavia, ciò non cambierà la vista nel controller collegato. Dovresti rimuovere la vista e aggiungere UITableView. Potrebbe quindi stabilire alcune connessioni delegate.

Ho fatto quello che descrivi più volte. A volte cancello il bersaglio e ricomincio; a volte faccio come descrivo e converto 'a mano'.

+0

Nel tentativo di eseguire la conversione opposta (TableViewController-> ViewController), sono in grado di eliminare la vista tabella, ma non riesco a inserire una nuova vista normale. Ho dovuto ricorrere all'hacking dell'XML. –

2

Per quanto ne so, non esiste un'interfaccia utente in Xcode che consenta di farlo. Puoi comunque aprire il file storyboard nell'editor xml (attivando l'editor delle versioni lo farà) e cambiare il nome del nodo da <viewController ...> a <tableViewController ...>. Non dimenticare di cambiare anche il tag di chiusura su </tableViewController>.

+0

Ho fatto un tentativo sull'ultimo Xcode (5.1) e sembra fallire la validazione e non si aprirà. Non ho esaminato il perché. –

+0

È necessario apportare modifiche aggiuntive, ad esempio rimuovere tutti i parametri relativi a 'tableView' dal bit' '. Quindi funziona perfettamente. – SaltyNuts

2

Quello che ho fatto, è creare un UITableViewController in IB, aprire lo Storyboard con un editor di testo e copiare tutti i nodi all'interno da UIViewController a UITableViewController.

Penso che in questo modo ci sia meno rischio di eliminare qualcosa di importante.

Prima di copiare gli oggetti sezioni, assicurarsi che entrambe le tableviews (UIViewController e UITableViewController) hanno le stesse proprietà impostate come: celle statici o dinamici, lo stile (normale o raggruppate), ecc

+0

Questo è l'unico metodo che ha funzionato per me nella conversione di un TableViewController in un normale ViewController.(Un pò triste in realtà) –

+0

Ho convertito da TableViewController in ViewController semplicemente cambiando in nell'editor di testo e ha funzionato. – Sravan

0

La seguente non lo fa rispondo esattamente alla domanda, ma penso che possa rispondere all'intento della domanda.

Il modo più semplice per sostituire un normale controller di visualizzazione e visualizzare una vista tabella con controller e tabella è trascinare un controller di visualizzazione tabella dal menu oggetti su una sezione vuota di tela, creando una nuova scena. Se la scena della vista tabella dovrebbe essere la prima vista della tua app, trascina la freccia che punta sulla scena del controller della vista sulla nuova scena. Ora, se non c'è nulla che ti serve dal vecchio controller di visualizzazione, basta eliminarlo.

Vedere l'esercitazione here.

Tuttavia, probabilmente ciò che si desidera effettivamente se si desidera eseguire il drill down nelle viste di dettaglio dalla vista tabella è un controller di navigazione. L'oggetto controller di navigazione crea una scena di visualizzazione tabella per impostazione predefinita come controller di visualizzazione radice.

Problemi correlati