2010-03-21 3 views
0

J'ai fait une application ViewBased, dans le délégué de l'application j'ai mis un UITabBarCotntroller, dans l'application j'ai une vue différente Contrôleur deux d'entre eux affiche du texte dans un UITextView et des étiquettes, l'autre est mon "ShakeController" un UIViewController dans lequel j'ai mis un UIAcelerometerDelegate, dans lequel je crée une instance de UIAccelerometer, dans la méthode qui gère le shake tout fonctionne bien, dans ce contrôleur j'ai aussi mis un UIImageView pour faire une animation simple, dans la vue Did Load method J'ai mis mon imageView.animation à un tableau d'UIImage. Mon problème est le suivant: lorsque l'application est lancée, j'utilise les ViewControllers et tout fonctionne correctement, mais quand j'appuie sur l'élément ShakeController dans la barre d'onglets, puis quand je reviens aux autres contrôleurs, l'étiquette ressemble à: textView like: Lorem ipsum ..... le texte de UItextView dans IB. J'ai remarqué que si je commente l'initialisation de mon imageView au tableau de l'image je peux naviguer les articles (d'un contrôleur de vue à l'autre) sans le changement d'étiquette et rester ce que je veux qu'ils soient.Dans une application basée sur une barre d'onglets, un contrôleur publie les données de l'autre! !

Notez que les deux contrôleurs sont dans un UINavigationController.

(j'utilise @proprety (nonnatomic, conserver) puis @synthesize ... puis releqse dans le dealloc pour les étiquettes TextView et mon UIImageView)

Ne sait pas quoi faire merci à tous

+2

Peut-être que si vous ajoutez d'autres points d'exclamation, votre question obtiendra une réponse plus rapide. –

Répondre

0

Assez difficile de comprendre ce que vous demandez ici ... Je l'ai relu trois fois et je ne suis toujours pas sûr! Puisque vous trouvez le problème (les données de l'autre vue étant "libérées") disparaît lorsque vous commentez l'initialisation de votre animation imageView, je voudrais conclure que vous utilisez une grande quantité de mémoire de l'iPhone, ce qui signifie que il décharge automatiquement tous les contrôleurs de vue non vus. Il le fera assez rapidement pour préserver la mémoire. Vous ne spécifiez pas le nombre d'images dans votre animation, mais seulement 10 images de taille moyenne à grande peuvent suffire à déclencher des problèmes de mémoire; Si vous voulez utiliser 20/30 +, vous devez chercher un autre moyen.

Vous pouvez essayer de charger d'abord quelques images dans votre image, puis de les échanger sur une minuterie récurrente. Mais s'il s'agit de quelque chose de plus qu'une simple animation de base, vous devrez vous cantonner à l'animation du noyau: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/WhatisCoreAnimation.html#//apple_ref/doc/uid/TP40004689

Questions connexes