Utilizzo di un controller di visualizzazione che gestisce altri due controller di visualizzazione

StackOverflow https://stackoverflow.com/questions/9398590

  •  29-10-2019
  •  | 
  •  

Domanda

Ho un offlineMapVC e un onlineMapVC per la mia applicazione per supportare sia mappe online (utilizzando MapKit e Google Maps) sia mappe offline (utilizzando Route-Me ).

Ho creato il mio mapVC per gestire la commutazione di questi mapVC ed essere in grado di utilizzare il controller di visualizzazione come un controller di visualizzazione separato. Bene, l'ho fatto creando le variabili di istanza offlineMapVC e onlineMapVC della nuova strega mapVC che ora uso in tutta la mia applicazione.

Prima di tutto tutte le cose sembrano funzionare ma. Tuttavia, utilizzando questo approccio per un periodo più lungo, ho riscontrato alcuni problemi a causa del mio utilizzo dei controller di visualizzazione in una gerarchia. Ho letto che questa è la strada sbagliata. Cosa è il modo giusto per gestire il passaggio tra due controller di visualizzazione? La mia domanda sembra abbastanza semplice ma non sono riuscito a trovare una soluzione decente.

È stato utile?

Soluzione

Ho messo i controller di visualizzazione in controller di visualizzazione, io stesso, e ho visto programmatori molto migliori di me fare la stessa cosa. (Vedi Rob Napier "Programmazione iOS 5: spingersi oltre i limiti". Lo menziona frequentemente.) Finché non hai più di un controller di visualizzazione che controlla direttamente le stesse visualizzazioni e sottoview, dovresti essere d'accordo.

Da quando Jonah Williams ha scritto quell'articolo, credo che iOS 5 abbia formalizzato l'uso della gerarchia dei controller di visualizzazione con controller di visualizzazione del contenuto personalizzati. Potresti considerare mapVC un controller di visualizzazione del contenuto personalizzato e implementare onlineMapVC e offlineMapVC come controller di visualizzazione figlio.

(I link alla documentazione di Apple tendono a cambiare frequentemente, quindi Google "Custom Content View Controller" per la documentazione.

Se puoi dare un po 'più di contesto a ciò che intendi per "passare da un controller di visualizzazione all'altro", ciò potrebbe aiutare a rispondere alla tua domanda. In genere, ho più di un controller di visualizzazione attivo contemporaneamente. Non cambio tra di loro. (Uso i controller di navigazione e della barra delle schede nella stessa applicazione, ma presumo che tu sappia come funzionano e che tu stia facendo una domanda diversa. Non è chiaro quali siano i dettagli nel tuo caso.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top