2009-08-04 6 views
0

Dans mon application, j'ai un tabBarController et un contrôleur de navigation. Un de mes vue des contrôleurs est un TableViewController et sous le navigationBar i a ajouté un UIView en tant que sous-vue à la vue comme ceci:UIView disparaît après la suppression de modalViewController de la vue d'ensemble

rectangleInfo = [[UIView alloc] initWithFrame:CGRectMake(0,0,[[UIScreen mainScreen] applicationFrame].size.width,26)]; rectangleInfo.autoresizingMask = (UIViewAutoresizingFlexibleWidth); rectangleInfo.backgroundColor = [UIColor darkGrayColor]; [self.view addSubview: rectangleInfo]; 

lorsque je clique sur une cellule dans le tableView je pousse un UIViewController comme ceci:

[feedViewController setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 

[[auto navigationController] presentModalViewController: feedViewContrôleur animé: OUI];

Après avoir affiché la vue modale quelques fois avec le tableau tableNavigationController disparaît le rectangleInfo UIView.

Je pop mon modalview comme ceci:

[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES]; 
[self setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
[self dismissModalViewControllerAnimated:YES]; 

toute idée pourquoi cette sous-vue (rectangleInfo) des tableViewController dissapears après que je supprimer le point de vue modal du superview?

merci d'avance.

Répondre

0

i résolu le problème en mettant en place correctement les méthodes viewDidLoad et viewDidUnload pour créer et libérer mes sous-vues.

1

Je suis curieux de savoir ce que vous essayez de faire avec votre vue rectangleInfo? Par la taille de celui-ci, il semble que vous essayez d'imiter la barre d'état. Pourquoi? Vous pouvez simplement masquer la barre d'état si vous le souhaitez.

Une autre chose que vous pouvez essayer est de créer l'UIView visuellement dans Interface Builder. Ne l'ajoutez pas réellement à votre vue principale, mais créez-la comme une vue UIV séparée dans la XIB avec la taille appropriée, etc. Ensuite, créez une sortie pour Xcode et connectez-la. Ensuite, ajoutez-le en tant que sous-vue dans le code lorsque votre contrôleur de vue se charge. Voyez si cela fait une différence. C'est particulièrement étrange puisque vous dites qu'il ne disparaît qu'après l'avoir fait éclater plusieurs fois. Avez-vous le même problème si vous poussez et pop la manière non modale, .: par exemple

[[self navigationController] pushViewController:feedViewController animated:YES]; 
[[self navigationController] popViewControllerAnimated:YES]; 
+0

Bonjour Matt, avec la vue rectangleInfo je n'essaie pas d'imiter la barre d'état. cette image montre mieux ce que j'essaie de faire avec cette vue http://img269.imageshack.us/img269/9001/picture1wim.png. Sous le NavigationBar est le rectangleInfo qui a un UILabel sur lui qui affiche la catégorie actuelle. Je vais essayer ce que vous avez suggéré et je reviendrai avec les commentaires. merci –

+0

bonjour Matt, j'ai essayé ce que tu as suggéré. le problème apparaît toujours et aussi parce que j'ai une tabbar mon feedViewController n'apparaît pas au-dessus d'elle. si je tente de le cacher, l'espace qui était occupé par la barre d'onglets ne peut pas être utilisé par ma vue. –

+0

hmm j'ai testé mon application à nouveau et j'ai découvert que ma sous-vue disparaît parce que je reçois un avertissement de mémoire. L'os libère toutes les vues qui ne sont pas visibles.Curieux est le fait qu'il ne reconstruit pas la sous-vue rectangleInfo, mais les autres sont repositionnés après l'avertissement de la mémoire ... –

Questions connexes