Come posso gestire i miei ViewControllers nel mio gioco?

5

Sto costruendo un gioco iOS molto semplice che non richiede alcuna OpenGL di fantasia; Mi piacerebbe restare con Core Graphics & Animazione core. Mi piacerebbe fare di questo un gioco a schermo intero, e la mia domanda è di gerarchia + gestione ViewController:

Sembra che dovrei avere due tipi di ViewController: VC di base per navigare tra le schermate dei menu (ad esempio Impostazioni, Menu principale, Selezione livello, ecc.) e VC di gioco per la gestione di tutti i miei UIViews e CALAY.

Qual è un buon modo per gestirli? È consigliabile disporre di una gerarchia di VC come un'app tradizionale basata su UINavigationController , che copre il NavBar quando visualizzo un Game ViewController? O invece dovrei rimuovere tutti gli altri ViewControllers dallo stack quando inserisco "game mode" e impostandolo come mia proprietà window.rootViewController ? Qualche alternativa / svantaggio di reimpostare continuamente window.rootViewController ?

Il mio istinto mi dice che quest'ultimo è migliore in termini di risorse + prestazioni, ma consiglio + direzione qui sarebbe apprezzato.

    
posta Chazbot 30.09.2011 - 21:15
fonte

1 risposta

3

ho visto entrambi, ma preferisco quest'ultimo per considerazioni sulla memoria. prima di passare a rootViewController, è necessario sfumare e rimuoverefromaggiornamento precedente, quindi aggiungereSubview il nuovo e sfumarlo, quindi impostarlo come root. questo pasticcia con l'orientamento a meno che tu non abbia un solo VC sullo schermo che erediti da UIViewController.

quindi, avrei un VC principale per la gestione di tutti i menu, e separerò le sue subviews in classi che ereditano da NSObject (dovrebbe esserci solo una classe sullo schermo alla volta che eredita da UIViewController - basta cercare su google raccomandazioni di Apple per dividere un singolo schermo in file / classi IB separati). quando vai in modalità gioco, richiami il delegato della tua app.

successivamente, il delegato dell'app può gestire il passaggio dalla modalità menu alla modalità gioco. svanisce il precedente VC, assegna / avvia il gioco VC, si dissolve in entrata e rimuove removefromsuperview, ecc. sul precedente VC.

in realtà hai solo bisogno di due classi al livello più alto tra le quali è possibile delegare l'app: un menu VC (con sottoview) e un gioco VC (con sottoview).

    
risposta data 02.10.2011 - 08:22
fonte

Leggi altre domande sui tag