0

i Hava une mise en application à l'image: enter image description hereIOS: Après son retour en arrière de mise en page UIImagePickerController est devenu fullscreen

Il a une mainViewController avec un en-tête, pied de page, et une vue entre. D'autres ViewControllers se chargent dans la vue Autres contrôleurs d'affichage. (donc l'en-tête et le pied de page sont corrigés pour tous les autres ViewControllers).

Problème: Dans un de mes Voir contrôleurs j'appelle UIImagePickerController comme ceci:

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.mediaTypes =[UIImagePickerController availableMediaTypesForSourceType:picker.sourceType]; 
// picker.allowsEditing = YES; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
[self presentViewController:picker animated:YES completion:NULL]; 

et après son retour j'utilise délégué par défaut:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 


if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.image"]) 
{ 
    { 
     //some code 
    } 
} 
else if([info[UIImagePickerControllerMediaType] isEqualToString:@"public.movie"]) 
{ 
    //some code 
} 

// self.imageView.image = selectedImage; 

[self dismissViewControllerAnimated:YES completion:nil]; 

}

Après son retour en arrière à partir de UIImagePickerController, la vue intérieure (Autres contrôleurs de vue) est passée en plein écran et passe en-tête et pied de page.

1) J'ai essayé de redimensionner la vue après mon retour. mais ne fonctionne pas. 2) i essayé d'ajouter ce code:

- (void)navigationController:(UINavigationController 

*)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    [[UIApplication sharedApplication] setStatusBarStyle:YES]; 
} 
-(BOOL)prefersStatusBarHidden // iOS8 definitely needs this one. checked. 
{ 
    return YES; 
} 

-(UIViewController *)childViewControllerForStatusBarHidden 
{ 
    return nil; 
} 

aucun d'entre eux travaille, aide Pleaes. Toute aide appréciée

---- ---- Modifier

peut-être cette aide. J'utilise le code suivant pour montrer d'autres contrôleurs de vue dans les contrôleurs de la vue principale. main_view est la vue entre en-tête et pied de page. et la page Nouveau est le contrôleur que j'appelle UIpicker à l'intérieur et il est devenu fullscreen

New_page *np = [[New_page alloc] initWithNibName:@"New_page" bundle:nil]; 
uicontroller=np; 
[uicontroller.view setFrame:CGRectMake(0, 0, main_view.frame.size.width, main_view.frame.size.height)]; 
[main_view addSubview:uicontroller.view]; 
+0

Vérifiez s'il y a quelque chose dans votre 'viewWillAppear' qui est appelé après rejet. –

+0

toute aide.? pour empêcher la vue est devenue en plein écran? –

Répondre

0

Je voudrais essayer en remplaçant

[picker dismissViewControllerAnimated:YES completion:NULL]; 

[self.presentingViewController dismissViewControllerAnimated:YES completion:nil]; 

par une simple

[self dismissViewControllerAnimated:YES completion:nil]; 

à moins d'une raison d'appeler rejeter deux fois je ne vois pas?

De toute façon, le viewcontroller présent doit être celui qui rejette. Alors même que vous écrivez

[self presentViewController:picker animated:YES completion:NULL]; 

vous écrivez qui devraient

[self dismissViewControllerAnimated:YES completion:nil]; 

Cela pourrait tout aussi bien fixer

+0

d'abord j'ai utilisé UIImagePickerController dans l'autre contrôleur de vue lui-même et j'ai appelé seulement [picker dismissViewControllerAnimated: OUI achèvement: NULL]; (mais pas de chance) puis je crée un contrôleur de vue temporaire et appelé le sélecteur sur celui-là, donc j'ai appelé [picker dismissViewControllerAnimated: OUI achèvement: NULL]; dissmis le sélecteur et [auto.presentingViewController dismissViewControllerAnimated: OUI achèvement: nil]; pour ignorer le contrôleur de vue temporaire aucun d'entre eux a travaillé –

+0

j'ai utilisé [self presentViewController: sélecteur animé: OUI achèvement: NULL]; pour prescrire uipicker et [self dismissViewControllerAnimated: YES achèvement: néant]; renvoyer UIcontroller. mais encore, il est devenu en plein écran. –