Проблема выглядит так, будто она как-то сосредоточена вокруг события popover. Ex. Я нажимаю «Камера». Она запускает камеру модально до абсолютной верхней части экрана. Если я нажимаю «Отмена» и повторяю…, все выглядит отлично. Теперь, если я выберу просмотр всплывающей камеры Roll .. при следующем запуске Camera она будет примерно в 20 пикселях от верхней части экрана, а навигационная панель кнопок будет видна только наполовину. (имейте в виду, что стандартный экран имеет стандартную верхнюю панель, но модальная камера занимает полный экран 1024x768).
мой код:
- (IBAction) getPhoto: (id)sender
{
if ([self.popoverController isPopoverVisible]) {
[self.popoverController dismissPopoverAnimated:YES];
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.allowsEditing = YES;
[self presentModalViewController:imagePicker animated:YES];
}
}
- (IBAction) useCameraRoll: (id)sender
{
if ([self.popoverController isPopoverVisible]) {
[self.popoverController dismissPopoverAnimated:YES];
}
else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
imagePicker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
popoverController.delegate = self;
[self.popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissModalViewControllerAnimated:YES];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
[self.popoverController dismissPopoverAnimated:true];
UIImage *savedimage = [editingInfo objectForKey:UIImagePickerControllerOriginalImage];
imageView.image = savedimage;
UIImageWriteToSavedPhotosAlbum (savedimage, self, nil, nil);
}