2011-11-20 16 views
16

Assegnazione di un controller di vista a questa proprietà (sia a livello di codice o usando Interface Builder) installa vista del controller della vista come la vista contenuto della finestra.Cosa fa l'impostazione del rootViewController di UIWindow?

La citazione sopra è da riferimento UIWindow. La mia domanda riguarda la particolare fase:

"installa vista del controller della vista come la vista contenuto della finestra"

Cosa vista esattamente contenuti riferisce?

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html

risposta

41

prima che la proprietà rootViewController è arrivato, la maggior parte delle applicazioni ha avuto codice come questo nel delegato applicazione:

[window addSubview:viewController.view]; 
[window makeKeyAndVisible]; 

Questo codice impostato vista del controller della vista come la vista principale, ma l'istanza UIWindow non aveva alcun riferimento al controllore che possiede quella vista.

Quando si utilizza la proprietà rootViewController, non è più necessario aggiungere la vista del controller di visualizzazione all'istanza UIWindow, ciò avviene automaticamente. Quindi il numero di righe di codice rimane lo stesso, ma ora il tuo UIWindow ha un riferimento al controller di visualizzazione.

Così, nelle applicazioni più recenti, ora abbiamo il codice che assomiglia a questo:

window.rootViewController = viewController; 
[window makeKeyAndVisible]; 
+5

+1 per la risposta esauriente prendere ragionamento storico in considerazione – Till

+0

+1 Buona risposta! – Cyprian

+0

Grazie per la gentile assistenza – Stanley