1

出现了一个奇怪的问题。当我添加到我的UIPopoverController时,通常在导航栏上显示的取消按钮在添加UIImagePickerController时缺失。添加到UIPopoverController时从UIImagePickerController中缺少导航按钮

我已经尝试过UIImagePickerController的子类,并且自己在导航栏上添加了一个导航按钮,但它没有显示出来。

如果我选择我的相机胶卷,后退按钮会自动添加,但取消按钮仍然丢失。

任何人都知道可能会导致这种情况?

这是我使用的代码。请注意,_popOver是我的UIPopoverController的实例。

UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
[_popOver setContentViewController:picker animated:YES]; 

回答

1

我试过这段代码,现在我认为这是一个默认行为。 UIImagePickerController通常以模式视图控制器的形式出现,取消按钮的目的是解除它。当你将UIImagePickerController放入UIPopoverController时,Cancel按钮变得毫无意义。对于解雇这个,你可以点击任何地方(UIPopoverController视图除外)。如果您要访问的时候UIPopoverController会/没有驳回使用UIPopoverControllerDelegate方法的UIImagePickerController:

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{ 
    UIImagePickerController *imagePicker = (UIImagePickerController*)popoverController.contentViewController; 
    return YES; 
} 
+1

你可能是正确的,但它确实限制了设计可能与此组件。在我的应用程序中关闭弹出窗口并不是一种选择,因为在启动图像选择器之前,您必须在导航控制器内的多个菜单中导航。因此,如果您取消选择器,那么在您启动选取器之前,您很快就会回到这一点。关闭弹出窗口会在逻辑上将您带回到导航控制器的根目录,或者可能返回到之前解散之前的相同页面。 –