imagepicker + navigationController causa problemi in iphone?
-
22-07-2019 - |
Domanda
come posso fare ... ho un delegato di appliation ... in cui ho aggiunto il controller di uinavigation tramite il codice ...
ecco il mio codice ...
- (void)applicationDidFinishLaunching:(UIApplication *)application {
HomeScreenController *homeScreenobj=[[HomeScreenController alloc] initWithNibName:@"HomeScreen" bundle:[NSBundle mainBundle]];
navController = [[UINavigationController alloc] initWithRootViewController:homeScreenobj];
[homeScreenobj release];
[window addSubview:navController.view];
// Override point for customization after app launch
[window makeKeyAndVisible];
}
su homescreen ho una barra delle schede con tre pulsanti qui è un'immagine
Voglio scattare foto dalla libreria da imagepickerController ... ma ottenere problemi bizzarri
viene aggiunto alla finestra principale, non so perché
ecco un'immagine per questo
perché questo non viene mostrato a schermo intero .... e anche se inserisco questa riga
imagePickerController.allowsImageEditing = YES;
si blocca non so perché ... c'è il mio codice da prenderePhoto ....
-(IBAction)TakePhotoClicked
{
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.allowsImageEditing = YES;
imagePickerController.delegate = self;
imagePickerController.sourceType =
UIImagePickerControllerSourceTypePhotoLibrary;
//self.navigationController.navigationBar.hidden=YES;
[self.navigationController pushViewController:imagePickerController animated:NO];
//[imagePickerController release];
}
se non inserisco questa riga nei commenti //self.navigationController.navigationBar.hidden=YES;
si presenta così
dove il clic sul pulsante Home riporta a casa ...
Soluzione
Devi presentare UIImagePickerController come controller di visualizzazione modale. Quindi non spingere il controller, ma presentalo come modale:
[self.navigationController presentModalViewController:imagePickerController animated:YES];
Puoi selezionare il selettore di immagini usando - [UINavigationController dismissModalViewControllerAnimated:]
per tornare all'ultimo controller di visualizzazione nello stack.