Question

j'ai un offlineMapVC et un onlineMapVC Pour que mon application prenne en charge les cartes en ligne (à l'aide de MapKit et Google Maps) et des cartes hors ligne (en utilisant Itinéraire).

J'ai fait le mien mapVC Pour gérer la commutation de ces MAPVC et être en mesure d'utiliser le contrôleur de vue comme un contrôleur de vue distinct. Eh bien, j'ai fait cela en faisant le offlineMapVC et le onlineMapVC Variables d'instance du nouveau mapVC sorcière que j'utilise maintenant partout dans mon application.

Tout d'abord, tout semble fonctionner mais. Cependant, tout en utilisant cette approche plus longtemps, j'ai rencontré certains problèmes en raison de mon utilisation des contrôleurs de vue dans une hiérarchie. J'ai lu que ce soit la mauvaise façon de procéder. Quelle est la bonne façon de gérer la commutation entre deux contrôleurs de vue? Ma question semble assez simple mais je n'ai pas pu trouver de solution décente.

Était-ce utile?

La solution

Je mets des contrôleurs de vue dans les contrôleurs de vue, moi-même, et j'ai vu des programmeurs bien meilleurs que moi faisant la même chose. (Voir Rob Napier "Programmation iOS 5 - Pousser les limites". Il le mentionne fréquemment.) Tant que vous n'avez pas plus d'un contrôleur de vue contrôlant directement les mêmes vues et sous-vues, vous devriez être d'accord avec cela.

Depuis que Jonah Williams a écrit cet article, je pense que iOS 5 a formalisé l'utilisation de la hiérarchie du contrôleur de vue avec des contrôleurs de vue de contenu personnalisés. Vous pourriez considérer votre MAPVC comme un contrôleur de vue de contenu personnalisé et implémenter OnlineMAPVC et OfflineMAPVC en tant que contrôleurs de vue d'enfants.

(Les liens de documentation Apple ont tendance à changer fréquemment, donc Google "Contrôleur de vue de contenu personnalisé" pour la documentation.)

Si vous pouvez donner plus de contexte à ce que vous entendez par «basculer entre deux contrôleurs de vue», ce qui vous aidera à répondre à votre question. Généralement, j'ai plus d'un contrôleur de vue actif en même temps. Je ne bascule pas entre eux. (J'utilise des contrôleurs de navigation et de barre d'onglet dans le même application, mais je suppose que vous savez comment ces fonctions et vous posez une question différente. Il n'est tout simplement pas clair quels sont les détecteurs dans votre cas.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top