gpt4 book ai didi

iphone - UIPopoverController 不显示在 iPad 上

转载 作者:行者123 更新时间:2023-11-29 04:27:32 24 4
gpt4 key购买 nike

我有一个适用于 iPhone 和 iPad 的通用应用程序。使用下面的代码我尝试从照片库或相机获取图片。对于 iPhone,它工作正常,但对于 iPad,当我单击警报 View 中的任何按钮时,它不会显示任何内容。可能是什么问题?

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {

if (buttonIndex == 0) {
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.allowsEditing = YES;
picker.delegate = self;
camera = NO;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

[self presentModalViewController:picker animated:YES];


} else if (buttonIndex == 1) {

BOOL hasCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
camera = YES;
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.allowsEditing = YES;
picker.delegate = self;
picker.sourceType = hasCamera ? UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypePhotoLibrary;

[self presentModalViewController:picker animated:YES];

}
}else {
// We are using an iPad
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
popoverController=[[UIPopoverController alloc] initWithContentViewController:imagePickerController];
popoverController.delegate=self;
[popoverController presentPopoverFromRect:[self.view bounds] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if (clickedButton == YES) {

UIImage *originalImage, *editedImage;

editedImage = (UIImage *) [info objectForKey: UIImagePickerControllerEditedImage];

originalImage = (UIImage *) [info objectForKey: UIImagePickerControllerOriginalImage];

if (editedImage) {

thisImage = editedImage;

} else {

thisImage = originalImage;

}

imageThis.image = thisImage;

NSData *imageData = UIImageJPEGRepresentation(thisImage, 30);

[defaults setObject:imageData forKey:@"thisImage"];

[defaults synchronize];

// [[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(thisImage) forKey:@"thisImage"];

}
else {

UIImage *originalImage, *editedImage;

editedImage = (UIImage *) [info objectForKey: UIImagePickerControllerEditedImage];

originalImage = (UIImage *) [info objectForKey: UIImagePickerControllerOriginalImage];

if (editedImage) {

thatImage = editedImage;

} else {

thatImage = originalImage;

}

imageThat.image = thatImage;

NSData *imageData = UIImageJPEGRepresentation(thatImage, 30);

[defaults setObject:imageData forKey:@"thatImage"];

[defaults synchronize];

//[[NSUserDefaults standardUserDefaults] setObject:UIImagePNGRepresentation(thatImage) forKey:@"thatImage"];

}

[picker dismissModalViewControllerAnimated:YES];
}

最佳答案

那是因为您在 iPad 上使用 UIActionSheet。在 iPad 上,UIActionSheet 使用 UIPopoverController 来呈现工作表,并且在 UIActionSheetDelegate 方法中,当 UIActionsheet 使用的第一个 UIPopoverController 尚未隐藏时,您可以使用另一个 UIPopoverController。您需要知道的是,任何时候屏幕上只能显示一个 UIPopoverController。

关于iphone - UIPopoverController 不显示在 iPad 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com