2010-08-08 5 views
2

la documentation d'Apple sur la classe UIViewController a ceci à dire:contrôleurs iAd et afficher

Remarque: Vous ne devriez pas utiliser les contrôleurs de vue pour gérer les vues qui remplissent seulement une partie de leur fenêtre qui est, seule une partie de la zone définie par le rectangle du contenu de l'application. Si vous souhaitez disposer d'une interface composée de plusieurs vues plus petites, intégrez-les dans une vue racine unique et gérez cette vue avec votre contrôleur de vue.

Lorsque vous utilisez iAd, il s'agit d'une douleur. Le problème est que je ne veux pas gérer le contenu de mon application dans la même classe qui a des méthodes comme moveBannerViewOffScreen, didFailToReceiveAdWithError, etc. Mettre ces contenus dans la même classe réduit la modularité. En outre, je ne peux pas avoir une pile de navigation dans laquelle l'annonce reste en place lorsque d'autres contrôleurs de vue sont poussés.

Je suis curieux de savoir si les lecteurs ont rencontré des problèmes similaires et si oui, comment les avez-vous traités?

Répondre

0

Si vous voulez de la modularité tout en conservant les ivars du contrôleur, create a category.

+0

Mais la vue de la bannière et la logique de l'application ont toutes deux besoin de leurs propres ivars. De plus, il semble gênant d'appeler des méthodes de catégorie dans viewDidLoad. –

0

Les deux approches qui viennent directement à l'esprit utilisent une classe non-UIViewController en tant que délégué, ou en utilisant une sous-classe de UIViewController comme classe de base de contrôleur de vue et en y mettant la logique.

Questions connexes