2010-07-27 9 views
0

je la hiérarchie suivante dans mon application:la source UIImagePickerController (caméra) lorsque rejeté l'intérieur d'une UITabBarController montre écran vide

UINavigationController 
    |__ UITabBarController 
      |__ UINavigationController 
        |__ ViewProfilePhotoController (*presentModalViewController:picker is done here) 

Le problème que j'ai est quand je presse annuler et rejeter ma UIImagePickerController dans le ViewProfilePhotoController je reçois un écran vide avec la barre d'état seulement et non la vue qui est supposée montrer à l'intérieur du ViewProfilePhotoController (la photo réelle).

Ce comportement est vraiment étrange, car j'ai essayé le même code en retirant le UITabBarController de ma hiérarchie d'application et ce problème n'est pas présent, et tout fonctionne comme prévu. Croyez-moi tous les délégués sont correctement configurés dans le ViewProfilePhotoController et j'ai essayé de le réparer pendant des heures.

J'ai également vérifié TOUTES les configurations possibles dans UIImagePickerController, en réglant la vue parent DROITE, et rien n'a fonctionné jusqu'ici.

J'ai également essayé de cascader correctement - viewWillAppear - viewWillDisappear descendre dans la hiérarchie et toujours pas de chance.

Toute idée sera grandement appréciée. OK

Répondre

0

OK donc pour l'enregistrement après de nombreuses heures, j'ai trouvé la solution.

In my rootController UINavigationController I was adding 2 UIViewControllers to the navigation stack and then after the authentication happened I did the following to add my UITabBarController:

[self.navigationController initWithRootViewController:theTabController]; 

J'ajoutais la UITabController comme RootViewController dans la deuxième UIViewController et la UIImagePickerController n'aime pas, et quand on ajoute ensuite plus tard dans la navigation. Il sera rejeté en laissant un écran blanc.

Donc à la place. J'ai appelé le UIViewController racine de ma pile si mon appDelegate et a ajouté le UITabBarController comme ceci:

- (void) authSucceded { 

     [self createTabBarController]; 

     self.theTabController.view.tag = 2345; 
     [self.view addSubview:self.theTabController.view]; 
} 

c'est ma Voila solution ....

Questions connexes