【发布时间】:2026-01-17 03:55:01
【问题描述】:
-(BOOL)prefersStatusBarHidden
{
return YES;
}
- (IBAction)PhotoImportAction:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = NO;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
[self presentViewController:picker animated:YES completion:nil];
else
{
popover=[[UIPopoverController alloc]initWithContentViewController:picker];
popover.delegate=self;
[popover presentPopoverFromRect:PhotoImportButton.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *selectedImage=info[UIImagePickerControllerOriginalImage];
VisualEffectImageVIew.image=selectedImage;
BackgroundImageView.image=selectedImage;
ForegroundImageView.image=selectedImage;
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)
{
[picker dismissViewControllerAnimated:YES completion:nil];
}
else
{
[popover dismissPopoverAnimated:YES];
}
}
-(void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
上面的代码非常简单,一切正常,除了 viewWillAppear 方法在关闭 UIPopoverController 后在 iPad 上不起作用,所以我们尝试使用 popoverControllerDidDismissPopover 方法但状态栏仍然可见。任何解决方案都值得赞赏。
【问题讨论】:
-
在 UIImagePickerController 中隐藏状态栏会破坏 swipeBack Navigation *.com/q/29864197/4813721
-
你确定你的
popoverControllerDidDismissPopover:方法被调用了吗? -
嗯,我认为你是对的,它没有被调用。