2

Je crée une application pour appareil photo qui permet à l'utilisateur d'accéder à la photothèque. Ils touchent le bouton et UIImagePickerControllerSourceTypeSavedPhotosAlbum apparaît en utilisant presentModalViewController. Quand ils touchent une photo, je veux une vue pour pousser l'ImagePicker vers la gauche et la nouvelle vue pour entrer. La chose est, je veux garder l'ImagePicker en place, alors quand ils y retournent il n'y a pas de décalage . Cela arrive dans de nombreuses applications d'appareil photo comme NightCamera. Chaque fois que j'utilise [self.navigationController pushViewController:photoPreview];, il pousse la vue à la vue principale, pas au sélecteur. Lorsque j'utilise [picker.navigationController pushViewController:photoPreview];, rien ne se passe, car le contrôleur de navigation du sélecteur est nul. Est-ce que quelqu'un sait quoi faire?Poussez UIImagePickerController vers la gauche

Répondre

15

Oui, c'est possible. Il n'y a pas de "contrôleur de vue modale", n'importe quel contrôleur de vue peut être présenté modalement.

Depuis UIImagePickerController est déjà un UINavigationController, vous pouvez pousser des vues directement sur elle. Ainsi, au lieu de

[picker.navigationController pushViewController:some_view_controller]; 

faire juste

[picker pushViewController:some_view_controller]; 

suppression .navigationController.

+1

Double merci – Tim

-2

Essayez ceci:

if (!picker.navigationController) 
    UINavigationController *navC = [[[UINavigationController alloc] initWithRootViewController:picker] autorelease]; 

[picker pushViewController:photoPreview]; 
+0

Pas vraiment sûr de ce que les deux premières lignes sont censés faire. Vous créez simplement une variable locale appelée navC qui n'est utilisée nulle part. Vous devriez recevoir un avertissement de compilateur "variable inutilisée". Pas de mal à ajouter ces lignes, mais elles ne font rien. – George