2015-01-22 22 views
5

È da un po 'che Apple ci ha fornito gli storyboard, sto seguendo la sua evoluzione sin dall'inizio, ha alcuni pro e contro, ma sicuramente questo è un "futuro" se lo si confronta con i file "xib" oldschool ...Oggetto esterno negli storyboard

Quello che ho notato è qualcosa chiamato "Oggetto esterno". Quando si utilizzano "xibs" standard, è sempre possibile trascinare due tipi speciali di oggetti dalla libreria di oggetti IB (riquadro a destra)

"Proprietario file" è un esempio di questo "oggetto esterno".

Siamo stati in grado di trascinare & calo ancora un'ExternalObject al nostro file XI ter e collegarlo a qualche oggetto esterno istanziando quali ViewController utilizzando questo UINib API:

- (NSArray *)instantiateWithOwner:(id)ownerOrNil options:(NSDictionary *)optionsOrNil; 

... sì, era possibile, documentazione:

Se il file pennino contiene oggetti del proxy di là della semplice proprietario oggetto proxy del file, è possibile specificare gli oggetti la sostituzione runtime per quelle deleghe utilizzando il dizionario opzioni. In quel dizionario, aggiungi la chiave UINibExternalObjects e imposta il suo valore su un dizionario contenente i nomi di tutti gli oggetti proxy (le chiavi) e gli oggetti reali da utilizzare al loro posto. Il nome dell'oggetto proxy è la stringa assegnata ad essa nel campo Nome della finestra di ispezione di Interface Builder .

Ora, quando si tratta di storyboard, gli oggetti esterni non sono disponibili nell'ispettore oggetti. Questo avrebbe senso perché non ho trovato alcuna API che ci permettesse di iniettare oggetti esterni in un controller di visualizzazione creato dallo storyboard. Abbiamo solo questo:

- (id)instantiateInitialViewController; 

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier; 

Quindi non v'è alcun modo per passare i nostri "Opzioni".

Tuttavia ...

oggetto esterno non è disponibile in storyboard fino ... fate un progetto Swift (forse c'è un altro fattore che consente oggetto esterno nel mio storyboard, non sono sicuro).

Quindi è possibile avere una configurazione in cui gli storyboard ci permettono di trascinare & rilasciare oggetto esterno in uno storyboard. Ma come possiamo approfittarne? Come posso caricare un controller di visualizzazione dallo storyboard e collegare questi oggetti proxy?

risposta

2

È possibile trascinare & cadere un NSObject su una scena vista controllori e dargli la giusta classe nella finestra di ispezione.

esso può essere cablato come previsto

enter image description here

ho creato un progetto Esempio per this question/answer e published it at GitHub.

+0

Mi dispiace ma questa non è una risposta per la mia domanda, so che posso usare "NSObject" è storyboard - si chiama Object in IB Inspector. Sto chiedendo una cosa chiamata "Oggetto esterno" nell'ispettore IB. Migliori prestazioni! – kprofic

+0

Questo può rappresentare qualsiasi cosa. – vikingosegundo

+0

Sì, è vero che potrebbe trattarsi di qualsiasi oggetto ma questo oggetto verrà creato durante l'inarchivizzazione di xib. L'oggetto esterno, d'altro canto, non è stato creato in questo processo ma è un collegamento ad un altro oggetto già esistente. – kprofic

Problemi correlati